- 1、本文档共19页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构
课程设计报告书
设 计 题 目 图遍历的演示
姓 名
专 业 班 级
学 号
指 导 教 师
成 绩
评 语
2014 年 6 月 20 日
目 录
目 录 . 1
一、功能需求 . 2
(一)原始数据 . 2
(二)系统功能 . 2
三、程序总体设计 2
(一)数据结构 . 2
( 二) 函数原形清单 3
(三)程序总体框架 4
(四)详细代码 . 4
四、程序清单 . 15
五、总结 . 18
1
一、功能需求
以邻接多重表为存储结构,实现连通无向图的深度优先和广度优先遍历。以用户
指定的顶点为起点,分别输出每种遍历下的顶点访问序列和相应生成树的边集。
二、系统功能和原始数据
(一)原始数据
设图的顶点不超过 20 个,每个顶点用一个编号表示(如果一个图有 n 个顶点,
则它们的编号分别为 1,2 ,…, n )。通过输入图的全部边输入一个图,每条边为一对
整数,可以对边的输入顺序作某种限制。注意,生成树的边是有向边,端点顺序不能
颠倒。
(二)系统功能
1.创建无向图
2.打印无向图
3.深度优先搜索
4.广度优先搜索
三、程序总体设计
(一)数据结构
typedef struct EBox
{
int mark;// 访问标记 ,1 代表已访问, 0 代表未访问
int ivex,jvex;// 该边依附的两个顶点的位置
struct EBox *ilink,*jlink;// 分别指向依附这两个顶点的下一条边
//InfoType *info;// 该边信息指针
}EBox;
typedef struct VexBox
{
VertexType data;
EBox *firstedge;// 指向第一条依附该顶点的边
}VexBox;
typedef struct
{
VexBox adjmulist[NUM];
int vexnum,edgenum;// 无向图的当前顶点数和边数
}AMLGraph;
// 队列的定义
2
typedef int QElemType;
typedef struct QNode
{
QElemType data;
struct QNode *next;
}QNode,*QueuePtr;
typedef struct
{
QueuePtr front,rear;
}LinkQueue;
( 二) 函数原形清单
int LocateVex(AMLGraph G ,VertexType u)
// 寻找输入的数据在图中的位置 ,若不存在则返回 -1
int CreateGraph(AMLGraph G)
// 采用邻接多重表存储表示,构造无向图 G
VertexType* GetVex(AMLGraph G ,int v) // 返回 V 的值
int FirstAdjVex(AMLGraph G ,VertexType v)// 返回 V 的第一个邻接点的
文档评论(0)