文章目录:
1.图、网的概念以及定义
2.建立相关图、网;建立方法的优势和劣势
一.图和网的定义:
图:
G=(V,E);
其中G为图的整体;V为该图中所包含的顶点(数据元素)的有穷非空集合;E为边的有穷集合;
例子:
其中完全图即为任意两点都有边相连;
所以已知为完全图的情况下,顶点数为n;则总共有n(n-1)/2条边【无向图】;总共有n(n-1)条边【有向图】。
稀疏图:指边/弧很少的图(一般少于nlogn,n为顶点数)
稠密图:指边/弧较多的图
网:指边/弧带有权的图
邻接关系:指两顶点有边相连的关系(vi,vj)为不分前后关系(无向)的相连;<vi,vj>为分前后关系(有向)的相连
关联(依附)关系:指边/弧与顶点相连的关系
顶点的度:与该顶点相关联的边的数量,记作TD(vi)
P:在有向图中顶点的度=入度和+出度和
路径:邻接的边所组成的顶点序列;
路径长度:路径上边/弧的数量以及权值之和(网)
子图;
若有两个图,G1=(v,{E}),G2=(v1,{E1});且满足v1从属于v;E1从属于E,则G2为G1的子图;
连通分量:
无向图G的极大连通子图称为图G的连通分量(极大连通子图即加入任一原不属于子图的顶点都无法连通的子图)(大到加不了)
极小连通子图:减少任一属于子图的顶点都无法联通的子图(小到减不了)
生成树/森林:
包含所有无向图G的极小连通子图
而森林则为非联通图的各个连通分量组成的生成树的集合
二.图、网如何建立,建立方法的优势和劣势
1).邻接矩阵表示法:
即用二维数组来表示元素与元素之间的关系
步骤:
建立一个顶点表(记录各个顶点的信息)和一个邻接矩阵(表示各顶点之间的关系)
-顶点表:Vexs[n](一维数组,表示一共有n个顶点,顶点分别为什么)
-邻接矩阵(二维数组):A.ars[i][j];若存在<i,j>/(i,j)则A.[i][j]=1;否则为0;
分析:
这种方法优势在于操作较于简单,结果明了
劣势在于空间复杂度过大,n个顶点就意味着n*n的邻接矩阵;一旦图为稀疏图,则会浪费无用空间
2)邻接链表表示法:
即用一个个的链表来记录元素与元素之间的关系
步骤:
建立n条链表,链表包括头结构和邻接结构两部分组成;
如果存在(vi,vj)/<vi,vj>则会在头结构为vi的链表处存储vj所对应的下标;
分析:
这种方式优势在于节省了不必要的空间
劣势是与前者方法相比,建立链表难度较大,且不好记数(出度数容易,入读数难)
心中存在的困惑:
1).如何通过代码实现上述目的
2).链表的创建如何实现(我本人不太熟练)
3).对于图。网前面的知识一知半解,需要怎么赶上大队伍(链表,背包,树等问题)
总结:
明天解决如何实现上述两种方法,并进一步深度学习,了解搜索(dfs,bfs)的本义,尽快跟上大队伍
加油(ง •_•)ง(ง •_•)ง(ง •_•)ง
新人一枚,希望大佬们多带带我,数据结构这一本书真的很难┭┮﹏┭┮