邻接矩阵是个不错的图储存结构,但我们发现,对于边数相对顶点较少的图,这种结构是存在对储存空间的极大浪费的(关于邻接矩阵的相关知识在这里:邻接矩阵的创建),因此我们要考虑另外一种存储结构方式。
我们在学习线性表时就注意到顺序存储结构预先分配空间会导致空间浪费的问题,于是我们引出了链式存储结构,所以我们也可以通过链式存储来储存图的边和弧解决空间浪费的问题。
我们可以将顶点存入数组,再将顶点的邻接点进行链式存储,这种数组与链表相结合的储存方式称为邻接表。
无向图邻接表的图示:

有向图邻接表图示:

ps:以上图均来自大话数据结构
知道了最后实现出来的图像我们便可以很轻松的编写程序了
1.边表结点的结构
//边表结点
struct EdgeNode
{
//邻结点域储存顶点的下标
int adjvex;
//权值
InfoType m_info;
//指


6493

被折叠的 条评论
为什么被折叠?



