- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
仲恺农业工程学院实验报告纸
(院、系) 专业 班 组 课
学号 姓名 实验日期 教师评定
实验四 图的建立及应用
一、实验目的
1、掌握图的存储思想及其存储实现。
2、掌握图的深度、广度优先遍历算法思想及其程序实现。
3、理解最小生成树的有关概念以及普里姆算法和克鲁斯卡尔算法的实现。
4、理解最短路径、拓朴排序、关键路径算法及实现。
二、实验要求
1、 编写程序实现图的各种运算,并在此基础上设计主函数,使其完成如下功能:
(1)建立无向图
(2)输出无向图对应的邻接表。
(3)实现深度遍历和广度遍历。
三、程序运算结果截图
四、程序源代码
#includeiostream
#includestdlib.h
using namespace std;
////////////////////////////
#define N 20
typedef char VertexType;
/////////////////////////////////
typedef struct ArcNode
{
int adjdex;
struct ArcNode *next; //图的边界点
}AN;
//////////////////////////////
typedef struct VNode
{
VertexType data;
bool mark;
AN *firstarc; //图的顶点
}VN;
////////////////////////////////
VN G[N]; //定义图的顶点
/////////////////////////////////
void Create(int n,VN G[]) //创建无向图
{
AN *p,*q;
int i,e;
VertexType d;
coutInput the information of the vertex\n;
for(i=0;in;i++)
{
coutG[i]=;
cind;
G[i].data=d; //初始化图的顶点
G[i].firstarc=NULL;
G[i].mark=false;
}
for(i=0;in;i++)
{
coutCreate the edges fo the G[i]endl;
cine;
while(e!=-1)
{
p=(AN*)malloc(sizeof(AN));
p-next=NULL;
p-adjdex=e; //建立顶点间的关系
if(G[i].firstarc==NULL)
G[i].firstarc=p;
else
q-next=p;
q=p;
cout按 -1 退出,否则继续创建边结点endl;
cine;
}
}
}
//////////////////////////////////
void visit(VN G[],int v)
{
coutG[v]=G[v].dataendl; //访问图的顶点
}
////////////////////////////////////
int FirstAdj(VN G[],int v)
{
if(G[v].firstarc!=NULL)
return G[v].firstarc-adjdex; //查找顶点的第一条边
return -1;
}
//////////////////////////////////
int NextAdj(VN G[],int v)
{
AN *p;
p=G[v].firstarc;
while(p-next!=NULL)
{
if(G[p-next-adjdex].mark==true) //查找顶点的下一条边
p=p-next;
else
return p-next-adjdex;
}
return -1;
}
//////////////////////////////////
void Visit(VN G[],int n)
{
int i,j,w;
for(i=0;in;i++)
G[i].mark=false;
for(i=0;in;i++)
{
coutG[i
您可能关注的文档
- 清华大学902运筹学和统计学考研参考书目、考研真题、复试分数线.pdf
- 第十一章 Nexenta性能说明.pdf
- 数据分析软件如何使用部分字段-副本.pdf
- C++程序初级案例与答案参考.pdf
- 出口集装箱倍分配模型和算法研究.doc
- 城市公交查询系统的研究和设计.pdf
- 运动副与其分类.ppt
- 医院数据一体化整合与建设数据集成平台的体会.pdf
- PRACH原理与其规划方法.docx
- 06 07 第6章 字符串及正则表达式 第7章 实用类(自学).ppt
- 天津市第100中学2025届高考押题卷生物试题含解析.doc
- 沈阳航空航天大学《建设项目经济评价》2023-2024学年第一学期期末试卷.doc
- 山东省广饶一中重点中学2025年高三1月份统一考试(历史试题文)试卷含解析.doc
- 宁夏银川二中2024届高三第二次诊断性检测语文试卷含解析.doc
- 常州幼儿师范高等专科学校《涉外秘书英语》2023-2024学年第二学期期末试卷.doc
- 西南林业大学《经济学原理》2022-2023学年第一学期期末试卷.doc
- 浙江省桐乡市第一中学2025年高考原创信息试卷历史试题(二)含解析.doc
- 闽北职业技术学院《园艺专业英语》2023-2024学年第一学期期末试卷.doc
- 江西省赣州市五校协作体2024年高三下学期联考生物试题含解析.doc
- 云南省曲靖市麒麟区三中2024届高三第三次模拟考试语文试卷含解析.doc
文档评论(0)