图的储存-邻接表
邻接表
1.为什么要有邻接表
可以想象如果有一个图他的顶点特别多而边只有一个?那么是不是用邻接矩阵特别浪费内存呢?
所以需要邻接表(不同于邻接表主要以链表形式实现)
2.怎么理解邻接表呢?
首先看上面b图,最边上的表我们给他起名——顶点表;其他的我们给另外的变我们给他起名边表;
3.顶点表
顶点表用来开始储存图中的各个顶点,可以看到我们给顶点表开辟了两个域,第一个域存放了顶点了第二个域呢?
我们可以看出来顶点表的第二个域指向了边表,所以在顶点表的第二个域里面我们存放边表类型让他变成边表的头结点指向边表;
4.边表
上图中边表有两个域一个存放和顶点边中有关系的顶点,另外一个也就是他的NEXT域和链表一样在后面没有时他指向为空,其实还可以给他加第三个域比如权值等等这个很简单了 。
代码链接 https://paste.ubuntu.com/p/G3BPQKHpK6/
参考至:https://blog.youkuaiyun.com/qq_33329316/article/details/53560874