全球旧事资料 分类
数据结构实验报告
实验四图的应用
一、实验题目:图的应用深度优先/广度优先搜索遍历
二、实验内容:
很多涉及图上操作的算法都是以图的遍历操作为基础的。试编写一个算法,实现图的深度优先和广度优先搜索遍历操作。要求:以邻接矩阵或邻接表为存储结构,以用户指定的顶点为起始点,实现连通无向图的深度优先及广度优先搜索遍历,并输出遍历的结点序列。(注:学号为奇数的同学使用邻接矩阵存储结构实现,学号为偶数的同学使用邻接矩阵实现)提示:首先,根据用户输入的顶点总数和边数,构造无向图,然后以用户输入的顶点为起始点,进行深度优先、广度优先搜索遍历,并输出遍历的结果。
三、程序源代码:
i
cludestdiohi
cludestdlibhdefi
eMAX_VERTEX_NUM20defi
eOVERFLOW1i
tvisited80typedefstructArcNode
i
tadjvex该弧所指向的顶点的位置structArcNode
extarc指向下一条弧的指针ArcNodetypedefstructVNodei
tdata顶点信息ArcNodefirstarc指向第一条依附该顶点的弧的指针VNodeAdjListMAX_VERTEX_NUMtypedefstructAdjListverticesi
tvex
umarc
um图的当前顶点数和弧数ALGraph
第1页共7页
ftypedefstructQNodei
tdatastructQNode
ext
QNodeQueuePtrtypedefstruct
QueuePtrfro
t队头指针QueuePtrrear队尾指针Li
kQueuevoidI
itQueueLi
kQueueq构造一个空队列qqfro
tqrearQueuePtrmallocsizeofQNodeifqfro
texitOVERFLOWqfro
t
extNULLvoidE
QueueLi
kQueueqi
te插入元素e为q的新的队尾元素QueuePtrppQueuePtrmallocsizeofQNodeifpexitOVERFLOW存储分配失败pdataep
extNULLqrear
extpqrearpi
tDeQueueLi
kQueueqi
te若队列不空,则删除q的队头元素,用e返回其值,并返回OK否则返回ERROR
第2页共7页
fifqfro
tqrearretur
falseQueuePtrppqfro
t
extepdataqfro
t
extp
extifqrearpqrearqfro
tfreepretur
eboolQueueEmptyLi
kQueueq若队列q为空队列,则返回TRUE,否则返回FLASEifqfro
tqrearretur
trueelse
retur
false
i
tLocateVexALGraphGi
tv
i
tifori0iGvex
umi
ifGverticesidatavretur
i
用邻接表构造无向图voidCreateDGALGraphG
i
tijkpri
tf
好听全球资料 返回顶部