欢迎来到天天文库
浏览记录
ID:47491117
大小:94.00 KB
页数:10页
时间:2020-01-12
《实验六 图基本操作的编程实现》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验六图基本操作的编程实现【实验目的】图基本操作的编程实现要求:图基本操作的编程实现(2学时,验证型),掌握图的建立、遍历、插入、删除等基本操作的编程实现,存储结构可以在顺序结构、链接结构、联合使用多种结构等中任选,也可以全部实现。也鼓励学生利用基本操作进行一些应用的程序设计。【实验性质】验证性实验(学时数:2H)【实验内容】编程对图进行存储(邻接矩阵或邻接表都可以,由学生自由选择),之后可以询问任何两个结点之间是否有通路和路径数。设计一个将图形转成邻接链表的程序。设计一个深度优先搜索法来查找图形的程序。设计一个广度优先搜索法来查找一个图形的
2、程序。鼓励开发出难度更高的程序。【思考问题】1.图的定义和特性?2.图的主要存储结构是什么?是独立的某种还是多种数据结构的综合?3.图的主要遍历思路是哪些?4.举出图的应用范例?【参考代码】(一)将一个将图转成邻接矩阵的程序./*程序构思:*//*用户输入结点与各个边,再将边转成邻接矩阵。*/#include#defineMax6/*定义最大可输入的结点个数*/intGraph[Max][Max];/*图形邻接数组*//*===============================================*//*输
3、出邻接矩阵数据===============================*//*===============================================*/voidprint_M_Graph(){inti,j;printf("Vertice");for(i=0;i4、========================================*//*以邻接矩阵建立图形=============================*//*===============================================*/voidCreate_M_Graph(intVerticel,intVertice2){Graph[Verticel][Vertice2]=1;/*将矩阵内容设为1*/}/*===============================================*//*主5、程序=========================================*//*===============================================*/voidmain(){intSource;/*起始顶点*/intDestination;/*终止顶点*/inti,j;for(i=0;i6、(Source==-1)break;printf("PleaseinputtheEdge'sDestination:");scanf("%d",&Destination);if(Source==Destination)/*出错:自身循环*/printf("***Error***:SelfLoop!!");elseif(Source>=Max7、8、Destination>=Max)/*出错:超出范围*/printf("***Error***:outofrange!!");else/*调用建立邻接数组*/Create_M_Graph(Sou9、rce,Destination);}printf("##Graph##");;/*调用输出邻接数组数据*/}/*希望的结果*//*pleaseinputtheEdge'ssource:0*//*PleaseinputtheEdge'sDestination:4*//*pleaseinputtheEdge'ssource:1*//*PleaseinputtheEdge'sDestination:0*//*pleaseinputtheEdge'ssource:1*//*PleaseinputtheEdge'sDestination:4*//*10、pleaseinputtheEdge'ssource:2*//*PleaseinputtheEdge'sDestination:1*//*pleaseinputth
4、========================================*//*以邻接矩阵建立图形=============================*//*===============================================*/voidCreate_M_Graph(intVerticel,intVertice2){Graph[Verticel][Vertice2]=1;/*将矩阵内容设为1*/}/*===============================================*//*主
5、程序=========================================*//*===============================================*/voidmain(){intSource;/*起始顶点*/intDestination;/*终止顶点*/inti,j;for(i=0;i6、(Source==-1)break;printf("PleaseinputtheEdge'sDestination:");scanf("%d",&Destination);if(Source==Destination)/*出错:自身循环*/printf("***Error***:SelfLoop!!");elseif(Source>=Max7、8、Destination>=Max)/*出错:超出范围*/printf("***Error***:outofrange!!");else/*调用建立邻接数组*/Create_M_Graph(Sou9、rce,Destination);}printf("##Graph##");;/*调用输出邻接数组数据*/}/*希望的结果*//*pleaseinputtheEdge'ssource:0*//*PleaseinputtheEdge'sDestination:4*//*pleaseinputtheEdge'ssource:1*//*PleaseinputtheEdge'sDestination:0*//*pleaseinputtheEdge'ssource:1*//*PleaseinputtheEdge'sDestination:4*//*10、pleaseinputtheEdge'ssource:2*//*PleaseinputtheEdge'sDestination:1*//*pleaseinputth
6、(Source==-1)break;printf("PleaseinputtheEdge'sDestination:");scanf("%d",&Destination);if(Source==Destination)/*出错:自身循环*/printf("***Error***:SelfLoop!!");elseif(Source>=Max
7、
8、Destination>=Max)/*出错:超出范围*/printf("***Error***:outofrange!!");else/*调用建立邻接数组*/Create_M_Graph(Sou
9、rce,Destination);}printf("##Graph##");;/*调用输出邻接数组数据*/}/*希望的结果*//*pleaseinputtheEdge'ssource:0*//*PleaseinputtheEdge'sDestination:4*//*pleaseinputtheEdge'ssource:1*//*PleaseinputtheEdge'sDestination:0*//*pleaseinputtheEdge'ssource:1*//*PleaseinputtheEdge'sDestination:4*//*
10、pleaseinputtheEdge'ssource:2*//*PleaseinputtheEdge'sDestination:1*//*pleaseinputth
此文档下载收益归作者所有