欢迎来到天天文库
浏览记录
ID:43133697
大小:117.88 KB
页数:10页
时间:2019-09-26
《《数据结构教学资料》数据结构实验报告模板3》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、本科实验报告课程名称:数据结构实验项目:图结构实验地点:行逸楼专业班级学号:2013005269学生姓名:杜波指导教师:杨永强2014年12月10日实验项目(居中)一、实验目的和要求熟悉图的存储结构,掌握有关算法的实现,了解图在计算机科学及其他工程技术中的应用。二、实验内容和原理简述题目要解决的问题是什么,并说明输入和输出数据的形式。简述存储结构和算法的基本思想。三、主要仪器设备使用的计算机:HP242G1、VS2012四、操作方法与实验步骤采用邻接表存储结构,编写一个求无向图的连通分量个数的算#include#in
2、clude#includeintn;structVNode{intposition;structVNode*next;};structArcNode{intmark:structVNode*first;};voidDFS(structArcNode*v,structAreNode*w){structVNode*L;w->mark=l;L=w->first;while(L!=NULL){if((v+(L->position))->mark==0){DFS(v,(v+L->position));}L
3、二L->next;}}intmain(){inti,j,k;intnum=O;structArcNodc*p;structVNode*temp;structVNode*flag;printff该无向图有多少个顶点:");scanf("%d",&n);while(n4、1结束输入",i+1);scanf(”%d",&k);if(k—-1){p[i].mark=0;p[i].f让st二NULL;}else}temp=(structVNode*)malloc(sizeof(structVNode));temp->position二k;temp->next二NULL;p[i].first=tcmp;p[i].n)ark=0;flag=temp;scanf&k);while(k!=-l){tcmp=(structVNode*)malloc(sizeof(structVNode));temp->posit5、ion=k;temp->next=NULL;flag-〉ncxt=tomp;flag=temp;scanf("%d",&k);}}}i二0;whilc(p[i].mark==0){DFS(p,(p+i));num++;i二0;while(p[i].mark!=0&&i#in6、clude#includeintn;〃定义全局变量,表示所构造的图中的总的顶点个数〃用于构造结点之间联系关系的弧结点typedefstructarcNode{intposition;//用来存放节点的标号structarcNode*next;〃用来存放结点的下一个弧的信息[ArcNode,*ArcNode_;〃定义用来构造元素的结点typedefstructvNode{intmark;〃在程序中用来标识是否被访问过ArcNode*first;//#储连接到该结点的第一个弧信息的地址}VNode7、,*VNode_;//函数声明部分VNode_Structure();//构造一个图voidDFS(VNode_Chart,intt);〃递归方法实现链表深度探索voidInitialize(VNode_Chart);//初始化所构造的顶点信息voidEnd(VNode_Chart);//收尾工作,释放rflmalloc中请的空间voidmain(){inti=0;intcount=0;intw,v;VNodeChart=Structure();//创建图printf(H请输入要查询的顶点w,vH);scanf(”%d,%d”,&8、w,&v);DFS(Chart,w-1);if(Chart[v-1].mark){printf(“顶点V%d,与顶点V%d之间连通。”,w,v);}else{printf(“顶点顶点V%d,与顶点V%d之间不连通。”,w
4、1结束输入",i+1);scanf(”%d",&k);if(k—-1){p[i].mark=0;p[i].f让st二NULL;}else}temp=(structVNode*)malloc(sizeof(structVNode));temp->position二k;temp->next二NULL;p[i].first=tcmp;p[i].n)ark=0;flag=temp;scanf&k);while(k!=-l){tcmp=(structVNode*)malloc(sizeof(structVNode));temp->posit
5、ion=k;temp->next=NULL;flag-〉ncxt=tomp;flag=temp;scanf("%d",&k);}}}i二0;whilc(p[i].mark==0){DFS(p,(p+i));num++;i二0;while(p[i].mark!=0&&i#in
6、clude#includeintn;〃定义全局变量,表示所构造的图中的总的顶点个数〃用于构造结点之间联系关系的弧结点typedefstructarcNode{intposition;//用来存放节点的标号structarcNode*next;〃用来存放结点的下一个弧的信息[ArcNode,*ArcNode_;〃定义用来构造元素的结点typedefstructvNode{intmark;〃在程序中用来标识是否被访问过ArcNode*first;//#储连接到该结点的第一个弧信息的地址}VNode
7、,*VNode_;//函数声明部分VNode_Structure();//构造一个图voidDFS(VNode_Chart,intt);〃递归方法实现链表深度探索voidInitialize(VNode_Chart);//初始化所构造的顶点信息voidEnd(VNode_Chart);//收尾工作,释放rflmalloc中请的空间voidmain(){inti=0;intcount=0;intw,v;VNodeChart=Structure();//创建图printf(H请输入要查询的顶点w,vH);scanf(”%d,%d”,&
8、w,&v);DFS(Chart,w-1);if(Chart[v-1].mark){printf(“顶点V%d,与顶点V%d之间连通。”,w,v);}else{printf(“顶点顶点V%d,与顶点V%d之间不连通。”,w
此文档下载收益归作者所有