图的存储结构
来源:互联网 发布:ubuntu16搭建java 编辑:程序博客网 时间:2024/06/09 15:08
图8.10所示的是无向图的邻接矩阵表示法,可以观察到,矩阵对角线对称,即A(i,j)=A(j,i)。无向图邻接矩阵的第i行 或第i列非零元素的个数其实就是第i顶点的度。这表示无向图邻接矩阵存在一定的数据冗余。
图8.11所示的是有向图邻接矩阵表示法,矩阵并不延对角线对称,A(i,j)=1表示顶点Vi邻接到顶点Vj;A(j,i)=1则表示顶点Vi邻接自顶点Vj。两者并不象无向图邻接矩阵那样表示相同的意思。有向图邻接矩阵的第i行非零元素的个数其实就是第i个顶点的出度,而第i列非零元素的个数是第i个顶点的入度,即第i个顶点的度是第i行和第i列非零元素个数之和。
二、邻接表表示法
有向图的邻接表有出边表和入边表(又称逆邻接表)之分。出边表的表结点存放的是从表头结点出发的有向边所指的尾顶点;入边表的表结点存放的则是指向表头结点的某个头顶点。如图所示,图(b)和(c)分别为有向图(a)的出边表和入边表。
以上所讨论的邻接表所表示的都是不带权的图,如果要表示带权图,可以在表结点中增加一个存放权的字段,其效果如图8.14所示
注意:观察图8.14可以发现,当删除存储表头结点的数组中的某一元素,有可能使部分表头结点索引号的改变,从而导致大面积修改表结点的情况发生。可以在表结点中直接存放指向表头结点的指针以解决这个 问题。在实际创建邻接表时,甚至可以使用链表代替数组存放表头结点或使用顺序表代替链表存放表结点。对所学的数据结构知识应当根据实际情况及所使用语言的特点灵活应用,切不可生搬硬套。
http://blog.chinaunix.net/uid-26833883-id-3167659.html
0 0
- 图的存储结构
- 图的存储结构
- 图的存储结构
- 图的存储结构
- 图的存储结构
- 图的存储结构
- 图的存储结构
- 【图的存储结构】
- 图的存储结构
- 图的存储结构
- 图的存储结构
- 图的存储结构
- 图的存储结构
- 图的存储结构
- 图的存储结构
- 图的存储结构
- 图的存储结构
- 图的存储结构
- Ubuntu12.04系统编译Android4.4源码
- Ubuntu使用日志2(在Eclipse中搭建C++交叉编译环境)
- 将ImageView变成灰色竟是如此简单
- android软键盘弹出引起的各种不适终极解决方案
- Android内存管理之道
- 图的存储结构
- android asynHttp下载PDF文件时报空指针
- Android中四大组件
- 关于Android 获得图片的总结
- Android 通过字符串来获取R下面资源的ID 值
- Eclipse3.7中搭建Android开发环境
- 如何将 Android 仿真器的速度提升 400%
- android模拟器启动慢的处理技巧
- 用Visual Studio 2010开发Android应用