- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构第7章修道士实验报告.
数据结构
实验报告 第七章
实验名称:修道士野人问题
5.实验收获及思考
遇到的问题:
1.无法编译。
2.不知道选用什么样的数据结构。
3.广度优先遍历结果不正确。
解决办法:
1.通过错误提示,发现均是变量书写错误,改正后解决问题。
2.和同学讨论、上网查询相关资料后确定数据结构。
3.逐步执行程序并查看运行过程的结果,找出问题所在,修改后解决问题。
实验的收获:
通过此次编程感觉收获了好多,又一次复习了图的知识,并亲自编写了广度遍历的程序。同时也意识到知识不能只死学,要学会分析问题,把已经学过的知识用到解决实际问题中,比如这道我们小学就见过的过河问题。
同时编写程序要按部就班,从最基本的做起,如果没有头绪可以上网查阅相关资料,看看其他人是怎么解决这个问题的。多积累相关知识,并多加练习,提高编程能力。
附录:
#includestdio.h
#includestdlib.h
#includemalloc.h
int n,c;
typedef struct
{
int num1;//修道士
int num2;//野蛮人
int an;//表示两岸
}DataType;
DataType fa[5000];
typedef struct Node
{
int dest; //邻接表的弧头结点序号
struct Node *next;
}Edge; //邻接表单链表的结点结构体
typedef struct
{
DataType data; //结点数据元素
int sorce; //邻接表的弧尾结点序号
Edge *adj; //邻接边的头指针
int pre; //指向此点的点的序号
}AdjLHeight; //数组的数据元素类型结构体
typedef struct
{
AdjLHeight a[10000]; //邻接表数组
int numOfVerts; //结点个数
int numOfEdges; //边个数
}AdjLGraph; //邻接表结构体
void AdjInitiate(AdjLGraph *G) //图的初始化
{
int i;
G-numOfEdges=0;
G-numOfVerts=0;
for(i=0;i10000;i++)
{
G-a[i].sorce=i; //置邻接边的弧头结点序号
G-a[i].adj=NULL; //置邻接边单链表头指针初值
G-a[i].data.an=-1;
G-a[i].pre=-1;
}
}
void InsertVertex(AdjLGraph *G, int i, DataType vertex) //在G图中插入结点
{
if( i=0 i10000 )
{
G-a[i].data.num1=vertex.num1;
G-a[i].data.num2=vertex.num2;
G-a[i].data.an=vertex.an;
G-numOfVerts++;
}
else printf(结点越界!\n);
}
void InsertEdge(AdjLGraph *G,int v1,int v2) //在G图中插入边v1,v2
{
Edge *p;
if(v10||v1=G-numOfVerts||v20||v2G-numOfVerts)
{
printf(参数v1或v2越界出错!);
exit(0);
}
p=(Edge *)malloc(sizeof(Edge));/*申请邻接边单链表结点空间*/
p-dest=v2;/*置邻接边弧头序号*/
p-next=G-a[v1].adj;/*新结点插入单链表的表头*/
G-a[v1].adj=p;/*头指针指向新的单链表表头*/
G-numOfEdges++;/*边个数加1*/
}
void AdjDestroy(AdjLGraph *G) { //G图的撤销
int i;
Edge *p,*q;
for(i=0;iG-numOfVerts;i++)
{
p=G-a[i].adj;
while(p!=NULL)
{
q=p-next;
free(p);
p=q;
}
}
}
int check(DataType x) //检查当前情况下
您可能关注的文档
最近下载
- 招投标合规指引之招标常见问题(第一期).pdf VIP
- 2025版建筑行业临时用工合同范本(2025版).docx
- 痛风性关节炎-课件.ppt VIP
- 人教版二年级上册数学全册教学设计(配2025年秋新版教材).docx
- 2024年《高等教育心理学》教师岗前培训考试复习题库(含答案).docx VIP
- 四川省成都市双流区2024年小升初语文试卷 附解析.doc VIP
- Module4Unit1Willyoutakeyourkite?(教学设计)-英语四年级下册.docx
- 新闻编辑学 (第四版).pptx VIP
- 四川省成都市双流区2024年小升初语文试卷 附解析 .pdf VIP
- (人教2019版)化学必修第一册 全册大单元教学设计.docx
文档评论(0)