数据结构与算法C#
feiwoba
补课不开
展开
-
6.3图的遍历
在遍历图的过程中,必须记下每个已访问过的顶点。为此,可以设一个辅助数组visited[n],n为图中顶点的数目。数组中元素的初始值全为0,表示顶点都没有被访问过,如果顶点vi被访问,visited[i-1]为1。 6.3.1深度优先遍历 图的深度优先遍历(Depth_First Search)类似与树的先序遍历,时树的先序遍历的推广。 这两张图是一个题 当图采用邻接矩阵作为存储结构是,查找每个顶点的灵界顶点的时间复杂度为O(N^2),N为图的顶点数。而用邻接表作为图的存储结构是,查找邻接顶点的时间复杂度原创 2020-06-14 11:22:38 · 375 阅读 · 0 评论 -
第6章 图6.1 6.2
图状结构简称图,是另一种非线性结构(把图中的数据元素称为顶点)。 6.1图的基本概念 6.1.1图的定义 图(Graph)是由非空的顶点(Vertex)集合和描述顶点之间的关系——边(Edge)或弧(Arc)的集合组成,G=(V,E),V是顶点的集合,E是边或弧的集合。 6.1.2图的基本术语 1、无向图(Undirected Graph):顶点之间的连线没有方向(边)。 2、有向图(Directed Graph):顶点之间的连线有方向(弧)。 3、无向完全图(Undirected Complete Gr原创 2020-06-13 18:06:17 · 233 阅读 · 0 评论 -
第5章 树和二叉树
线性结构的数据元素是一对一的关系。 非线性结构:树形结构和图状结构。 树形结构是一对多的非线性结构,数据元素之间既有分支关系,又有层次关系。 树形结构由树和二叉树两种,树的操作实现比较复杂,但树可以转换为二叉树进行处理。 5.1树 5.1.1树的定义 树(Tree)是n个相同类型的数据元素的有限集合。树中的数据元素叫结点(Node)。 记为T,T=(D,R):D是结点的有限集合;R是结点之间关系的有限集合。 除根节点外的所有结点有且只有一个前驱节点,如果结点之间形成了环(前驱节点有两个),那么就不是树了。原创 2020-06-13 09:57:14 · 236 阅读 · 0 评论 -
第3章 栈和队列
栈和队列也是线性结构。 线性表、栈和队列这三种数据结构的数据元素以及数据元素间的逻辑关系完全相同,差别是线性表的操作不受限制,而栈和队列的操作收到限制。 栈的操作只能在表的一端进行,队列的插入操作在表的一端进行而其它操作在表的另一端进行,所以,把栈和队列称为操作受限的线性表。 3.1栈(洗盘子,拿盘子) 3.1.1栈的定义及基本运算 栈(Stack)是操作限定在表的尾端进行的线性表。表尾进行插入、删除等操作,把表尾称为栈顶(Top),另一端是固定的,叫栈底(Bottom)。 栈记为:S=(a1,a2,··原创 2020-06-08 10:26:57 · 249 阅读 · 0 评论 -
第二章 线性表
线性表是最简单的数据结构,除第一个位置的数据元素外,其它数据元素位置的前面都只有一个数据元素,除最后一个位置的数据元素外,其它数据元素位置后面都只有一个元素。 线性表的顺序存储和链式存储各有优缺点,线性表如何存储取决于使用的场合。如果不需要经常在线性表中进行插入和删除,只是进行查找,那么,线性表应该顺序存储;如果线性表需要经常插入和删除,而不是经常进行查找,则线性表应该链式存储。 2.1.1线性表的定义 线性表(List)是由n个形同类型的数据元素构成的有限序列。记为:L=(a1,a2,···,ai,··原创 2020-06-07 19:27:08 · 188 阅读 · 0 评论