实现深度优先搜索与广度优先搜索算法Word格式文档下载.docx
- 文档编号:18641074
- 上传时间:2022-12-30
- 格式:DOCX
- 页数:12
- 大小:18.55KB
实现深度优先搜索与广度优先搜索算法Word格式文档下载.docx
《实现深度优先搜索与广度优先搜索算法Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《实现深度优先搜索与广度优先搜索算法Word格式文档下载.docx(12页珍藏版)》请在冰豆网上搜索。
1.建立图的存储结构。
2.输入图的基本接点与信息,完成初始化图的工作。
3.完成图的深度优先搜索(DFS)和广度优先搜索算法,可以采用菜单形式进行显示与选择。
(可以在键盘输入边的信息以构建一个无向图。
以(a,b)的形式输入边的信息;
对此无向图进行深度优先搜索,并输出正确的序列。
)
#include<
stdio.h>
#include<
malloc.h>
#definemax20
typedefintDate;
typedefcharInfo;
typedefstructbian//边的数据结构
{
intzhi;
//Infoinfo;
structbian*N;
}bian;
typedefstruct//节点数据结构
inti;
bian*F;
}Vex;
typedefstruct//用来作队列,栈
inttop;
intbutton;
inta[100];
}S;
Ss;
Vexv[max+1];
//节点个数
bian*bu;
intn,e;
voidcreate()//创建图
{bian*b;
inti,v1,v2;
voidmemo();
printf("
请输入节点个数N,边数E\n"
);
节点个数N\n"
"
scanf("
%d"
&
n);
边数E\n"
e);
请输入节点信息\n"
for(i=1;
i<
=n;
i++)
{
scanf("
v[i].i);
}
v[i].F=0;
请输入边\n"
起点终点\n"
=e;
printf("
%d%d"
v1,&
v2);
b=(bian*)malloc(sizeof(bian));
b->
zhi=v2;
N=v[v1].F;
v[v1].F=b;
b=(bian*)malloc(sizeof(bian));
zhi=v1;
N=v[v2].F;
v[v2].F=b;
memo();
}
intp[max];
voidvist(inti)
%d"
v[i].i);
->
voidaa()//查看表结构
inti,j;
bian*b;
numDAtenextnextnext....\n"
%d"
i);
printf("
b=v[i].F;
while(b!
=0)
{
j=b->
zhi;
v[j].i);
b=b->
N;
}
\n"
intf(inti)//返回没有被访问过的I的节点
intj=0;
bu=v[i].F;
while(bu!
if(p[bu->
zhi]==0)
{j=bu->
break;
bu=bu->
returnj;
voiddfst(inti)//深度优先搜索
intj,t;
if(p[i]==0)
vist(i);
p[i]=1;
s.a[++s.top]=i;
while(s.top!
t=s.a[s.top];
j=f(t);
if(j!
dfst(j);
elses.top=s.top-1;
voidss()
s.top=0;
p[i]=0;
请输入搜索起点i\n"
i);
遍历次序:
"
for(;
if(p[i]==0)
dfst(i);
memo();
//广度优先搜索
fst(inti)
intj;
if(p[i]==0)
s.a[s.top++]=i;
while(bu!
{
j=bu->
bu=bu->
if(p[j]==0)
fst(j);
}
voidwfst()
intj,i;
s.button=s.top=0;
bu=v[i].F;
fst(i);
while(s.button!
=s.top)
j=s.a[s.button];
j=f(j);
if(j>
0)
fst(j);
else
s.button=s.button+1;
voidmemo()//菜单显示
inti;
1.创建无向图2.深度优先搜索3.广度优先搜索4.查看邻接表逻辑结构5.退出\n"
printf("
请输入相应数字选择所需操作\n"
scanf("
switch(i)
case1:
create();
case2:
ss();
case3:
wfst();
case4:
aa();
case5:
exit
(1);
voidmain()
memo();
五、运行结果
六、实验体会
这堂Huffman编码以及解码的数据结构实验课让我对数据结构的整体学习有了进一步的了解,刚开始的时候稍微有点迷茫,但是循序渐进,一点点了解了这堂课的内容,经历过不少错误之后,到最后熟悉二叉树、Huffman树的基本概念,掌握二叉树的存储结构及各种算法,除此之外,还熟悉了用Huffman树进行电文的加密与解密算法。
从这次数据结构实验课我又学到了不少专业知识,虽然还只是浅显地了解,但已经弄懂了Huffman树的存储方式和
加密与解密算法在电文编码中的应用等不少知识。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实现 深度 优先 搜索 广度 算法