计算机图论知识恶补瀚哥版绪论.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
目录 引语 2 步骤 2 正文1:基本数据结构 3 线性表 3 1. 线性表介绍 3 2. 顺序表:向量 4 3. 链表 4 栈,队列 7 1. 栈虚基类(Stack.h) 7 2. 顺序栈和链式栈(Stack.cpp) 8 3. 顺序队列 9 4. 链式队列 10 正文2:图背景 11 历史(摘自wiki) 11 柯尼斯堡的七桥 11 骑士周游问题 11 环游世界游戏 12 四色问题 13 应用 14 正文3:图的表示 14 图定义 14 图术语 14 邻接矩阵 17 邻接表 17 图的抽象数据结构 18 具体代码实现参见参考 18 参考 19 图代码 24 凡事没有绝对,一切皆有可能 组员:陈锦瀚 何游敏 苏江吟 方桂凯 (排名不分先后) 时间:2014年3月18日 图算法讲义 引语 一切的理论都是为现实服务的。计算机的出现解决了人脑的限制,人脑不够快!《人脑与机器》说:机器的智慧不会超过人的智慧。机器就是人造的,我们用一道程序来模拟我们的思考并求出结果。人脑异常复杂,经常有第六感等超自然感觉,还可以并行地做好几件事,如:可以眼睛一边看电视,一边在洗脚,一边还在吃花生,更重要的是他竟然在和同学说话,脑袋里却在想他的女朋友。无疑,人类是有想法的很聪明的懒人:一:计算机代替人,可以提高工作效率。二:换句话,你就解放了,可以翘着腿喝咖啡,等结果。 但是!机器不知怎么做,你要教他,而且还要教得很好,故有了程序。第一:程序应该达到预期的结果,不能出错。第二:必须很快得到结果,否则你就要喝咖啡好几百年了,因为一个坏的教导会不停运行直到地老天荒。怎么办?答案:想好的算法,好的算法又要好的数据结构。 人是不能满足的高等动物,渴望我要快,更快,再快的节奏!于是,一代代又一代人研究算法,给出各种算法复杂度分析:渐进符号,程序测试等,励志突破前人,名垂千古。当然,说白了,他们是没什么事做,也只能做那件事,这就是所谓的社会分工。不要鄙视程序猿!一个不调侃自己的程序猿不是好的程序猿,一个不直面惨淡程序的程序猿也不是好的程序猿。好吧,让我们来挠腮抓头吧,进入今天的图讲解。图高端,大气,上档次,所以会讲很长很长,还会提供c++代码支持。提供c++代码原因:第一:类c,面向对象,群众基础深。第二:我喜欢。(我自己喷自己,建议改为JAVA). 一部图论就是一部计算机的心酸苦难史。所以,由我们组来讲解有关图的各种复杂关系,让我们来一场心与心的碰撞吧!以下讲义以大白话为主,不喜勿喷。 步骤 程序=算法+数据结构。我们由该公式开始讲解。 图论背景:图论来源于现实的抽象,把一些东西(object)当成点,以线连接点,这就是连小孩子都会理解的图论。为了便于解决问题:如走迷宫问题,旅行商旅行问题,找最短旅行路径问题,找最便宜旅行路径问题,找你祖宗十几代问题,考试安排问题,座位协调问题,手机无线电通讯问题,水资源调运问题,最重要的是找女朋友问题。所以,图论被扩充,定义了很多的术语,目的就是解决相应的问题。注:术语该出现的时候他自然会出现。 数据结构:为了便于在计算机中实现程序,所以要编程。从机器语言到汇编语言,再到高级语言,这些语言指导计算机做事。有一种病叫做:代码恐惧症,但是你一直会看到代码!一幅图怎么用计算机表示?抽象!怎么抽象?邻接表和邻接矩阵,而邻接矩阵和邻接表由数组和指针实现。所以有必要先介绍线性表:向量和链表,然后介绍栈和队列。而树结构,树实际上是一种特殊的图,而图也就成为最顶层的数据结构,其重要性不言而喻。以下将会用代码讲述各种数据结构,这是讲图算法的基础,超级啰嗦,不喜勿喷。 算法:实现了伟大的数据结构后,还要会用这些数据结构。Dijkstra算法(单源最短路径),Floyd算法(多源最短路径),Prim算法,Kruskal算法(最小生成树MST)已经吓退你了吧!我们会利用DFS(深度搜索)和BFS(广度搜索)以及构造的拓扑排序来实现这些算法。DFS和BFS由栈和队列实现,采用递归方法。 授课人群:接受过九年义务教育,有基本的理性和一点点的感性(可以喷我),喜欢数学(这个学科需要思维灵敏,不喜欢数学,没问题!不过,不喜欢,可以去爱嘛!)的广大的计算机爱好者。借用俺母校校训:勤奋,活泼,求实,向上。 授课基础:计算机科学导论(知道计算机基本结构),数学(一年级到十二年级),程序设计(C,C++,JAVA,PYTHON,VB,会打码),数据结构,英语(过了四级就好),心理学(心里素质必须硬)。 惨无人道的授课开始,进入正文1或者跳到正文3!都是讲数据结构的! 正文1:基本数据结构 线性表 数据的组织形式! 1. 线性表介绍 线性表是由有限节点集N,以及定义在N上的线性关系r所组成的线

文档评论(0)

贪玩蓝月 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档