图(Graph)是一种较线性表和树更为复杂的非线性结构在线
- 格式:ppt
- 大小:111.00 KB
- 文档页数:28
湖北大学本科毕业论文(设计)题目最短路径算法及其应用姓名学号专业年级指导教师职称2011年 4月 20 日目录绪论 (1)1 图的基本概念 (1)1.1 图的相关定义 (1)1.2 图的存储结构 (2)1.2.1 邻接矩阵的表示 (2)1.2.2 邻接矩阵的相关结论 (3)2 最短路径问题 (3)2.1 最短路径 (4)2.2 最短路径算法 (4)2.2.1Dijkstra算法 (4)2.2.2Floyd算法 (5)3 应用举例 (5)3.1 Dijkstra算法在公交网络中的应用 (5)3.1.1 实际问题描述 (5)3.1.2 数学模型建立 (5)3.1.3 实际问题抽象化 (6)3.1.4 算法应用 (6)3.2 Floyd算法在物流中心选址的应用 (7)3.2.1 问题描述与数学建模 (7)3.2.2 实际问题抽象化 (7)3.2.3 算法应用 (8)参考文献 (10)附录 (11)最短路径算法及其应用摘要最短路径算法的研究是计算机科学研究的热门话题,它不仅具有重要的理论意义,而且具有重要的实用价值。
最短路径问题有广泛的应用,比如在交通运输系统、应急救助系统、电子导航系统等研究领域。
最短路径问题又可以引申为最快路径问题、最低费用问题等,但它们的核心算法都是最短路径算法。
经典的最短路径算法——Dijkstra和Floyd算法是目前最短路径问题采用的理论基础。
本文主要对Dijkstra和Floyd算法进行阐述和分析,然后运用这两个算法解决两个简单的实际问题。
【关键字】最短路径 Dijkstra算法 Floyd算法图论Shortest path algorithms and their applicationsAbstractThe research about the shortest path is a hot issue in computer science. It has both important theoretical significance and important utility value. The shortest path problem has broad application area, such as transport system, rescue system, electronic navigation system and so on. The shortest path problem can be extended to the problem of the fastest path problem and the minimum cost problem. But their core algorithms are all both the shortest path algorithms. The classical algorithms for the shortest path——Dijkstra and Floyd are the theoretical basis for solving the problems of the shortest path. The article mainly through the demonstration and analysis of the Dijkstra and Floyd algorithms, then use the algorithms to solve the two simple practical problems.【keywords】shortest path Dijkstra algorithm Floyd algorithm graph绪论随着知识经济的到来,信息将成为人类社会财富的源泉,网络技术的飞速发展与广泛应用带动了全社会对信息技术的需求,最短路径问题作为许多领域中选择最优问题的基础,在电子导航,交通旅游,城市规划以及电力,通讯等各种管网,管线的布局设计中占有重要的地位。
第8章图8.1 知识点分析1.图的定义图(Graph)是由非空的顶点(V ertices)集合和一个描述顶点之间关系——边(Edges)的有限集合组成的一种数据结构。
可以用二元组定义为:G=(V,E)其中,G表示一个图,V是图G中顶点的集合,E是图G中边的集合。
2.图的相关术语(1)无向图在一个图中,如果每条边都没有方向,则称该图为无向图。
(2)有向图在一个图中,如果每条边都有方向,则称该图为有向图。
(3)无向完全图在一个无向图中,如果任意两顶点都有一条直接边相连接,则称该图为无向完全图。
在一个含有n个顶点的无向完全图中,有n(n-1)/2条边。
(4)有向完全图在一个有向图中,如果任意两顶点之间都有方向互为相反的两条弧相连接,则称该图为有向完全图。
在一个含有n个顶点的有向完全图中,有n (n-1) 条弧。
(5)顶点的度在无向图中,一个顶点拥有的边数,称为该顶点的度。
记为TD(v)。
在有向图中,一个顶点拥有的弧头的数目,称为该顶点的入度,记为ID(v);一个顶点拥有的弧尾的数目,称为该顶点的出度,记为OD(v);一个顶点度等于顶点的入度+出度,即:TD(v)=ID(v)+OD(v)。
(6)权图的边或弧有时具有与它有关的数据信息,这个数据信息就称为权(Weight)。
(7)网边(或弧)上带权的图称为网(Network)。
(8)路径、路径长度顶点v i到顶点v j之间的路径(Path)是指顶点序列v i,v i1,v i2, …, v im,v j.。
其中,(v i,v i1),(v i1,v i2),…,(v im,.v j)分别为图中的边。
路径上边的数目称为路径长度。
(9)回路、简单路径在一条路径中,如果其起始点和终止点是同一顶点,则称其为回路或者环(Cycle)。
如果一条路径上所有顶点除起始点和终止点外彼此都是不同的,则称该路径为简单路径。
(10)子图对于图G=(V,E),G’=(V’,E’),若存在V’是V的子集,E’是E的子集,则称图G’是G的一个子图。
《数据结构》填空作业题答案第1章绪论(已校对无误)1.数据结构包括数据的逻辑结构、数据的存储结构和数据的运算三方面的内容。
2.程序包括两个内容:数据结构和算法。
3. 数据结构的形式定义为:数据结构是一个二元组: Data Structure =(D,S)。
4. 数据的逻辑结构在计算机存储器内的表示,称为数据的存储结构。
5. 数据的逻辑结构可以分类为线性结构和非线性结构两大类。
6. 在图状结构中,每个结点的前驱结点数和后继结点数可以有多个。
7. 在树形结构中,数据元素之间存在一对多的关系。
8. 数据的物理结构,指数据元素在计算机中的标识(映象),也即存储结构。
9. 数据的逻辑结构包括线性结构、树形结构和图形结构 3种类型,树型结构和有向图结构合称为非线性结构。
10. 顺序存储结构是把逻辑上相邻的结点存储在物理上连续的存储单元里,结点之间的逻辑关系由存储单元位置的邻接关系来体现。
11. 链式存储结构是把逻辑上相邻的结点存储在物理上任意的存储单元里,节点之间的逻辑关系由附加的指针域来体现。
12. 数据的存储结构可用4种基本的存储方法表示,它们分别是顺序存储、链式存储、索引存储和散列存储。
13. 线性结构反映结点间的逻辑关系是一对一的,非线性结构反映结点间的逻辑关系是一对多或多对多。
14. 数据结构在物理上可分为顺序存储结构和链式存储结构。
15. 我们把每种数据结构均视为抽象类型,它不但定义了数据的表示方式,还给出了处理数据的实现方法。
16. 数据元素可由若干个数据项组成。
17. 算法分析的两个主要方面是时间复杂度和空间复杂度。
18. 一个算法的时间复杂度是用该算法所消耗的时间的多少来度量的,一个算法的空间复杂度是用该算法在运行过程中所占用的存储空间的大小来度量的。
19. 算法具有如下特点:有穷性、确定性、可行性、输入、输出。
20. 对于某一类特定的问题,算法给出了解决问题的一系列操作,每一操作都有它的确切的定义,并在有穷时间内计算出结果。
数据结构题库多选题1 . 以下说法正确的是() A . 二叉树的特点是每个结点至多只有两棵子树。
B . 二叉树的子树无左右之分。
C . 二叉树只能进行链式存储。
D . 树的结点包含一个数据元素及若干指向其子树的分支。
答案:A,D解析:2 . 算法设计的要求包括____。
A . 正确性 B . 可读性 C . 健壮性 D . 确定性答案:A,B,C解析:“确定性”属于算法特性而非要求。
3 . 下列属于算法的重要特征的是: A . 有穷性 B . 确定性 C . 可行性 D . 输入和输出答案:A,B,C,D解析: ABCD4 . 图的四中存储结构 A . 邻接矩阵 B . 邻接表 C . 邻接多重表 D . 十字链表答案:A,B,C,D解析:5 . 依据所有数据成员之间的逻辑关系的不同,数据结构分为()A . 非线性结构B . 逻辑结构C . 物理结构D . 线性结构答案:A,D解析:6 . 图的应用算法有() A . 克鲁斯卡尔算法 B . 哈弗曼算法C . 迪杰斯特拉算法D . 拓扑排序算法答案:A,C,D解析:7 . 计算机算法必须具备________________等特性。
A . 可行性、确定性 B . 可行性、可移植性 C . 输入、输出 D . 有穷性 E . 易读性 F . 稳定性答案:A,C,D解析:8 . 下列数据结构中,属于线性数据结构的是____ A . 栈 B . 队列 C . 树 D . 图答案:A,B解析:9 . 下列说法正确的有: A . 算法和程序原则上没有区别,在讨论数据结构时二者通用 B . 从逻辑关系上讲,数据结构分为两大类:线性结构和非线性结构 C . 所谓数据的逻辑结构是指数据元素之间的逻辑关系 D . 同一数据逻辑结构中的所有数据元素都具有相同的特性是指数据元素所包含的数据项的个数相等 E . 数据的逻辑结构与数据元素本身的内容和形式无关 F . 数据结构是指相互之间存在一种或多种关系的数据元素的全体答案:B,C,E解析:10 . 线性表的特点正确的() A . 存在唯一的一个被称作”第一个“的数据元素。
常⽤数据结构有哪些1、数据元素相互之间的关系称为结构。
有四类基本结构:集合、线性结构、树形结构、图状结构。
集合结构:除了同属于⼀种类型外,别⽆其它关系线性结构:元素之间存在⼀对⼀关系常见类型有: 数组,链表,队列,栈,它们之间在操作上有所区别。
例如:链表可在任意位置插⼊或删除元素,⽽队列在队尾插⼊元素,队头删除元素,栈只能在栈顶进⾏插⼊,删除操作。
树形结构:元素之间存在⼀对多的关系,常见类型有:树(有许多特例:⼆叉树、平衡⼆叉树、查找树等)图形结构:元素之间存在多对多的关系,图形结构中每个结点的前驱结点数和后续结点多个数可以任意常⽤数据结构:数组(静态数组、动态数组)、线性表、链表(单向链表、双向链表、循环链表)、队列、栈、树(⼆叉树、查找树、平衡树、线索、堆)、图等的定义、存储和操作。
2、数据结构是计算机存储、组织数据的⽅式。
数据结构是指相互之间存在⼀种或多种特定关系的数据元素的集合。
通常情况下,精⼼选择的数据结构可以带来更⾼的运⾏或者存储效率。
数据结构往往同⾼效的检索算法和索引技术有关。
在计算机科学中,数据结构是⼀门研究⾮数值计算的程序设计问题中计算机的操作对象(数据元素)以及它们之间的关系和运算等的学科,⽽且确保经过这些运算后所得到的新结构仍然是原来的结构类型。
“数据结构”作为⼀门独⽴的课程在国外是从1968年才开始设⽴的。
1968年美国唐·欧·克努特教授开创了数据结构的最初体系,他所著的《计算机程序设计技巧》第⼀卷《基本算法》是第⼀本较系统地阐述数据的逻辑结构和存储结构及其操作的著作。
“数据结构”在计算机科学中是⼀门综合性的专业基础课。
数据结构是介于数学、计算机硬件和计算机软件三者之间的⼀门核⼼课程。
数据结构这⼀门课的内容不仅是⼀般程序设计(特别是⾮数值性程序设计)的基础,⽽且是设计和实现编译程序、操作系统、数据库系统及其他系统程序的重要基础。
常⽤的数据结构有:数组 (Array)在程序设计中,为了处理⽅便,把具有相同类型的若⼲变量按有序的形式组织起来。