数据结构第六章知识总结

来源:互联网 发布:exescope软件下载 编辑:程序博客网 时间:2024/05/29 21:31

       在这一章里我们主要学习了图。GraphG=VE),V是顶点的有穷非空集合,E是顶点偶对的有穷集。 有向图:每条边有方向;无向图:每条边没有方向。有向完全图:具有n*n-1)条边的有向图;无向完全图:具有n*n-1/2条边的无向图;有图的存储结构:1·邻接矩阵表示法:用一个n阶方阵来表示图的结构是唯一的,适合稠密图。2·无向图:邻接矩阵是对称的。3·有向图:行是出度,列是入度。 建立邻接矩阵算法的时间是On+n^2+e),其时间复杂度为On^2.邻接表表示法:用顶点表和邻接表构成不是唯一的,适合稀疏图。邻接表:用头指针确定。无向图称边表;有向图又分出边表和逆邻接表;邻接表结点结构为 adjvex | next,时间复杂度为On+e)。空间复杂度为On+e)。

      图的遍历:1·深度优先遍历:借助于邻接矩阵的列。使用栈保存已访问结点。2·广度优先遍历:借助于邻接矩阵的行。使用队列保存已访问结点。生成树的定义:若从图的某个顶点出发,可以系统地访问到图中所有顶点,则遍历时经过的边和图的所有顶点 构成的子图称作该图的生成树。最小生成树:图的生成树不唯一,从不同的顶点出发可得到不同的生成树,把权值最小的生成树称为最小生成树 (MST)。构造最小生成树的算法:Prim算法的时间复杂度为On^2)与边数无关适于稠密图。Kruskal算法的时间复杂度为Olge),主要取决于边数,较适合于稀疏图。最短路径的算法:Dijkstra算法,时间复杂度为On^2)。2·类似于prim算法。    

      拓扑排序:是将有向无环图G中所有顶点排成一个线性序列,若<uv>EG),则在线性序列uv之前, 这种线性序列称为拓扑序列。 拓扑排序也有两种方法:1·无前趋的顶点优先,每次输出一个无前趋的结点并删去此结点及其出边,最后得到的序列即拓扑序列。2·无后继的结点优先:每次输出一个无后继的结点并删去此结点及其入边,最后得到的序列是逆拓扑序列。

0 0
原创粉丝点击