数据结构:图的邻接表实现

来源:百度知道 编辑:UC知道 时间:2024/06/15 19:13:18
要求:
1 存储结构:邻接表

2 顶点插入,删除

3 弧插入,删除

4 邻接表 邻接多重表转换

5 对节点求度

6 遍历

7 判断连通性,输出连通分量

8 判断是否有环

9 任意两顶点的简单路径

10 任意两顶点的最短路径

11 最小生成树

12 对一个原点,和一个汇点,球关键路径……
语言:C/C++……
对满意者,另追加200分!!!!!!!!!!!!!!!!!!
邮箱:yiyiyiming@yhoo.cn

发给你邮箱里了,给分!!!!!

先自己做后给大家改才能提高自己

壹冥 - 助理 二级

有的时候我并不能一口吃一个胖子,不是吗?编程也是一样,如果都让别人来帮助你,那么自己永远也难有提高的,其实要想编写好你提出图的问题首先要有一些基础才可以的。只有在基本概念非常熟悉的情况之下,我们才可能自己编写出真正属于自己的程序,而且会让我们的编程变得从容自如。

     首先,我们要知道什么是邻接表,说简单点,邻接表是一个特殊数组,数组中的每个非空元素代表一个图的节点,且存放的是一个链表(如果不清楚什么是链表的话,那就看看清华大学严蔚敏版的《数据结构》)的头指针,这个链表是所有与此节点联通的节点的集合。如果还不太清楚的话看看下面的图片

左边的数组,就是所有定点列表啦,右边有6个链表

比如A节点与B,E节点相连,所以第一个链表里分别存放B,E节点(注意这里的B,E节点在邻接表中不直接用字母标出,而是使用B,E节点所在数组的下标表示,故分别为1节点和4节点,这样便于编程)

好啦,如果你明白了什么是邻接表,那么已经成功一半啦,对于图的操作都要修改这个抽象的邻接表。

     其次,我们要懂得链表这样的数据结构的操作以及以上这些对于图的操作基本概念(可以看看严蔚敏版的《数据结构》),如果要讲清楚这些可能要讲到第二天的天亮。在这里请原谅我不能够一一讲解,不过你要求的这些基本程序在严蔚敏的那本书中都有源码的(建议不要看别人的源码,看如别人的会很痛苦,自己写反而很轻松的)。如果对链表的操作(主要是指针)还不熟悉,那么请先好好地学习一下链表的编程吧,链表比邻接表要简单得多,可以先简单后复杂,你会在编程的过程之中得到无穷的乐趣。

希望我的这点经验能够对你有些许帮助。