数据结构图结构
- 格式:ppt
- 大小:3.64 MB
- 文档页数:74
数据结构:图在计算机科学领域,数据结构是我们组织和存储数据的方式,以便能够高效地进行操作和处理。
而图,作为一种重要的数据结构,在许多应用中都发挥着关键作用。
想象一下,我们生活中的各种关系,比如朋友关系、交通网络、电路连接等等,这些都可以用图来表示。
图由顶点(也称为节点)和边组成。
顶点代表着事物或者对象,而边则表示顶点之间的关系。
比如说,在一个社交网络中,每个人可以看作是一个顶点,如果两个人是朋友,那么在他们对应的顶点之间就会有一条边。
这种直观的表示方式让我们能够清晰地理解和分析复杂的关系。
图有两种主要的表示方式:邻接矩阵和邻接表。
邻接矩阵就像是一个表格,行和列都对应着顶点,如果两个顶点之间有边相连,对应的位置就标记为 1,否则为 0 。
这种表示方式简单直观,但当顶点数量很多而边的数量相对较少时,会浪费大量的存储空间。
邻接表则是为每个顶点创建一个链表,链表中存储着与该顶点相邻的顶点。
这种方式在处理稀疏图(边的数量相对较少的图)时,能够节省大量的空间,并且在查找相邻顶点时也比较高效。
图的遍历是操作图的重要方式之一。
深度优先遍历就像是在迷宫中一直往前走,直到走不通了再回溯;而广度优先遍历则像是以一个点为中心,一层一层地向外扩展。
深度优先遍历通常使用递归的方式实现。
从一个起始顶点开始,沿着一条路径尽可能地深入,直到无法继续,然后回溯,尝试其他的路径。
这种遍历方式在搜索、查找路径等问题中经常被使用。
广度优先遍历则使用队列来实现。
先将起始顶点入队,然后依次取出队列头部的顶点,并将其相邻的未访问过的顶点入队。
这种方式常用于计算最短路径、层次遍历等问题。
图的应用非常广泛。
在网络路由中,通过构建网络的图模型,可以找到最优的数据包传输路径;在任务调度中,可以根据任务之间的依赖关系,使用图来安排任务的执行顺序;在地图导航中,城市和道路可以表示为图,从而为用户规划最佳的出行路线。
再比如,在人工智能中的搜索算法中,图可以用来表示状态空间。
第5章图●图的定义①图由顶点集V和边集E组成,记为G=(V,E),V(G)是图G中顶点的有穷非空集合,E(G)是图G中顶点之间变得关系集合,|V|表示顶点个数,也称图的阶,|E|表示边数(线性表和树都可以是空的,但图可以只有一个顶点没有边)②有向图:弧是顶点的有序对,记为<v,w>,v,w是顶点,v是弧尾,w是弧头,从顶点v到顶点w的弧。
无向图:边是顶点的无序对,记为(v,w)③简单图:一个图满足:不存在重复边;不存在顶点到自身的边。
多重图相对于简单图定义④完全图:无向图中,任意两顶点之间存在边,称为完全无向图。
N个顶点的无向完全图有n(n-1)/2条边。
在有向图中,任意两顶点之间存在方向相反的两条弧,称为有向完全图,N 个顶点的有向完全图有n(n-1)条边。
⑤连通图:在无向图中任意两顶点都是连通的。
无向图中的极大连通子图称为连通分量。
极大要求连通子图包含其所有的边和顶点,极小连通子图既要保持图连通,又要保持边数最少⑥在有向图中任意两顶点v,w,存在从顶点v到顶点w和从顶点w到顶点v两条路径,这种图称为强连通图。
有向图的极大强连通子图称为有向图的强连通分量。
⑦生成树:①包含图中所有顶点n,②生成树有n-1条边, ③任意两点连通。
对生成树而言,砍去一条边变成非连通图,加上一条边形成一个回路。
在非连通图中,连通分量的生成树构成了非连通图的生成森林。
⑧顶点的度:以该顶点为端点的边的数目。
无向图的全部顶点的度之和等于边数的两倍。
有向图的度等于出度和入度之和,入度是以该顶点为终点的有向边的数目,出度是以该顶点为起点的有向边的数目。
有向图的全部顶点的入度之和和出度之和相等且等于边数。
⑨图中每条边可以标上具有某种含义的数值,该数值称为边的权值。
带有权值的图称为网。
○10对于无向图G=(V, {E}),如果边(v,v’)∈E,则称顶点v,v’互为邻接点,即v,v’相邻接。
边(v,v’)依附于顶点v 和v’,或者说边(v, v’)与顶点v 和v’相关联。
数据结构与算法算法定义特征类型时间复杂度空间复杂度数据结构逻辑结构线性结构线性表栈特征队列非线性结构树-二叉树满二叉树完全二叉树特征先序、中序、后序网状存储结构循序存储链式存储其他查找顺序二分排序希尔排序堆排序快速排序学习途径学习网站中国大学mooc哔哩哔哩CSDN 博客园PTA学习书籍《数据结构——用C语言描述》严蔚敏著《数据结构》《数据结构与算法分析:C语言描述《大话数据结构》《从问题到程序——程序设计与C语言引论》具体算法结构线性表顺序表必须掌握(增、删、改、查、销)静态顺序表动态顺序表链表必须掌握(增、删、改、查、销)单链表无头单链表有头单链表链表相关试题链表的逆序无头链表插入和删除链表带环问题(次)顺序表与链表的仇缺点栈和队列流程1、栈和队列的创建2、栈和队列的初始化3、栈的增容4、入栈,出栈,入队,出队5、取得栈顶,队头和队尾元索6、求栈和队列的大小、判断栈和队列是否为空说明栈是一种特殊的线性表,只允许在固定的一端进行插入和删除元素操作栈顺序栈链栈栈的应用队列顺序队列循环队列优先级队列队列的应用树形结构树的基本概念1、节点2、节点呃度3、叶子节点4、分支节点5、祖先节点6、双亲节点7、兄弟节点8、孩子节点9、树的深度树的表示方法1、双亲表示法2、孩子表示法3、双亲孩子表示法4、孩子兄弟表示法树的存储形式树的应用二叉树二叉树的概念二叉树的性质二叉树的存储1、顺序存储结构2、链式存储结构二叉树的基本搡作二叉树的创建二叉树的遍历(递归和非递归)前序遍历中序遍历后序遍历二叉树的增、删、改、查、销二叉树相关试题线索化二叉树。