程序设计模板.docx
- 文档编号:5796849
- 上传时间:2023-01-01
- 格式:DOCX
- 页数:6
- 大小:35.45KB
程序设计模板.docx
《程序设计模板.docx》由会员分享,可在线阅读,更多相关《程序设计模板.docx(6页珍藏版)》请在冰豆网上搜索。
程序设计模板
算法与数据结构
课程设计报告书
姓 名 ___强跃__
班 级 ___091__
学 号 ___09261130
指导教师 ___袁晓峰_
盐城师范学院
信息科学与技术学院
问题述:
设计程序完成如下功能:
对给定的图结构和起点,产生其所有的深度优先搜索遍历序列。
设计的软、硬件环境:
WindwsXP
ADT(数据结构与算法)设计与功能模块:
typedefstruct
{
charvexs[MAX_VERTEX_NUM];
intarcs[MAX_VERTEX_NUM][MAX_VERTEX_NUM];
intvexnum,arcnum;
}MGraph;
用结构体把图的所用信息表示出来
voidCreatUDN(MGraph*G);
创建一个图,这是在CreatUDN(MGraph*G)中实现的:
先输入该图的顶点个数;
再输入该图的弧的数量;
一次性输入所有顶点,将图存到已经创建的结构体图空间中。
表示从某顶点x出发搜索,因为源点和存储结构的内容均已确定,是在邻接矩阵的第i行上从左至右选择下一个未曾访问过的邻接点作为新的出发点,若这样的邻接点多于一个,则选中的总是序号较小的那一个。
voidDFSM(MGraph*G,inti);
这是一个递归函数
voidDFS(MGraph*G);
其中嵌套着递归函数DFSM
这次的程序主要的是参考书上的一题。
我用1来表示A,2表示B,以此类推。
。
。
而此次编写的难点主要在于后面的递归函数与遍历。
本次设计主要就是考察自己对深度遍历的熟悉程度,只要自己对深度遍历很熟悉,这个程序应该是很容易就完成的。
程序输入与结果输出:
实验结果分析及收获:
本次课程设计主要是考验我对深度遍历的了解,即是否能够灵活的运用,图的遍历就是从图中的某个定点出发,按某种方法对图中的所有的顶点访问且访问一次,而深度优先搜索是按照深度方向搜索,它类似于熟的先跟遍历,是数的先跟遍历推广。
本次设计先是创建一个无向图,然后再进行深度遍历,同时也写了一个递归函数,不停的进行遍历。
这个程序是要通过手动输入的。
先输入创建的图的边数和顶点个数。
然后输入ABCDEFGHIJ,最后输入每个相同的边,最后将会自动的输出他的深度遍历。
通过本次的课程设计我对数据结构的理解更进一步了,对图的遍历也更加的理解了,也是我知道了再写程序前先要理清思路。
在心中想好了框架以后再去写程序。
遇到运行错误时要慢慢的去检查,希望以后还有机会进行数据结构的课程设计,我也希望自己的数据结构能更进一步,在将来我也希望自己如果有能力的话能够从事这一行业。
附录(源程序清单)
#include
#include
#include
#defineMAX_VERTEX_NUM10
#defineERROR-1
#defineINFINITY32768
typedefenum{FALSE,TRUE}Boolean;
Booleanvisited[MAX_VERTEX_NUM];
typedefstruct
{
charvexs[MAX_VERTEX_NUM];
intarcs[MAX_VERTEX_NUM][MAX_VERTEX_NUM];
intvexnum,arcnum;
}MGraph;
voidCreatUDN(MGraph*G);
voidDFSM(MGraph*G,inti);
voidDFS(MGraph*G);
voidmain()
{
MGraph*g;
g=(MGraph*)malloc(sizeof(MGraph));
CreatUDN(g);
printf("PrintGraphDFS:
");
DFS(g);
printf("\n");
}
voidCreatUDN(MGraph*G)
{
inti,j,k;
chara;
printf("Pleaseinputvexnumandarcnum:
\n");
scanf("%d,%d",&G->vexnum,&G->arcnum);
scanf("%c",&a);
for(i=0;i
{
for(j=0;j
{
G->arcs[i][j]=0;
}
}
printf("InputVertexstring:
");
for(i=0;i
{
scanf("%c",&a);
G->vexs[i]=a;
}
printf("Pleaseinputtwovexs:
\n");
for(k=0;k
{
scanf("%d%d",&i,&j);
G->arcs[i][j]=1;
G->arcs[j][i]=1;
}
}
voidDFS(MGraph*G)
{
inti;
for(i=0;i
visited[i]=FALSE;
for(i=0;i
if(!
visited[i])
DFSM(G,i);
}
voidDFSM(MGraph*G,inti)
{
intj;
printf("%c",G->vexs[i]);
visited[i]=TRUE;
for(j=0;j
if(G->arcs[i][j]==1&&!
visited[j])
DFSM(G,j);
}
成 绩
教师签名
日 期
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计 模板