- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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所组成的线
您可能关注的文档
最近下载
- LNGT88J永磁合金工艺研究.docx VIP
- 最校苏教版五年级数学同步思维训练(上册).pdf VIP
- 外研版高中英语选择性必修一Unit-3-The-road-to-success.pptx VIP
- 众兴菌业培训课件.pptx VIP
- 房地产市场年报-2020年天津市房地产市场年报.pdf VIP
- 1. 香港公司註冊證明書.pdf VIP
- 【港交所-2025研报】卓能(集团) 截至二零二四年十二月三十一日止六个月中期业绩报告.pdf VIP
- 2025四川内江市隆昌市兴晟产业投资集团有限公司招聘13人考试备考题库及答案解析.docx VIP
- ISO9001、ISO14001、ISO45001三标一体内部审核检查表.pdf VIP
- 2019年天津房地产市场回顾及2020年展望 .pdf VIP
文档评论(0)