欢迎来到天天文库
浏览记录
ID:48976289
大小:131.00 KB
页数:9页
时间:2020-02-26
《数据结构实验———图实验报告.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、.数据结构实验报告word范文.目的要求1.掌握图的存储思想及其存储实现。2.掌握图的深度、广度优先遍历算法思想及其程序实现。3.掌握图的常见应用算法的思想及其程序实现。实验内容1.键盘输入数据,建立一个有向图的邻接表。2.输出该邻接表。3.在有向图的邻接表的基础上计算各顶点的度,并输出。4.以有向图的邻接表为基础实现输出它的拓扑排序序列。5.采用邻接表存储实现无向图的深度优先递归遍历。6.采用邻接表存储实现无向图的广度优先遍历。7.在主函数中设计一个简单的菜单,分别调试上述算法。源程序:主程序的头
2、文件:队列#include#include#defineTRUE1#defineFALSE0#defineOK1#defineERROR0#defineOVERFLOW-2typedefintQElemType;typedefstructQNode{//队的操作QElemTypedata;structQNode*next;}QNode,*QueuePtr;typedefstruct{QueuePtrfront;QueuePtrrear;}LinkQueue;vo
3、idInitQueue(LinkQueue&Q){//初始化队列Q.front=Q.rear=(QueuePtr)malloc(sizeof(QNode));if(!Q.front)exit(OVERFLOW);//存储分配失败Q.front->next=NULL;}intEnQueue(LinkQueue&Q,QElemTypee)//插入元素e为Q的新的队尾元素{QueuePtrp;p=(QueuePtr)malloc(sizeof(QNode));word范文.if(!p)exit(OVERF
4、LOW);p->data=e;p->next=NULL;Q.rear->next=p;Q.rear=p;returnOK;}intDeQueue(LinkQueue&Q,QElemType&e)//删除Q的队头元素,用e返回其值{if(Q.front==Q.rear)returnERROR;QueuePtrp;p=Q.front->next;e=p->data;Q.front->next=p->next;if(Q.rear==p)Q.rear=Q.front;free(p);returnOK;}主程
5、序:#include#include#include"duilie.h"#defineTRUE1#defineFALSE0#defineStatusint#defineMAX_VERTEX_NUM8/*顶点最大个数*/#defineVertexTypechar/*顶点元素类型*/enumBOOlean{False,True};BOOleanvisited[MAX_VERTEX_NUM];//全局变量——访问标志数组typedefstructArcNode{int
6、adjvex;structArcNode*nextarc;intweight;/*边的权*/}ArcNode;/*表结点*/typedefstructVNode{intdegree,indegree;/*顶点的度,入度*/VertexTypedata;ArcNode*firstarc;}VNode/*头结点*/,AdjList[MAX_VERTEX_NUM];typedefstruct{AdjListvertices;intvexnum,arcnum;/*顶点的实际数,边的实际数*/}ALGraph
7、;//建立图的邻接表voidcreat_link(ALGraph*G)word范文.{inti,j;ArcNode*s;printf("请依次输入顶点数、边数:");scanf("%d%d",&G->vexnum,&G->arcnum);for(i=0;ivexnum;i++){G->vertices[i].data='A'+i;G->vertices[i].firstarc=NULL;}for(i=0;ivexnum;){printf("请输入顶点的数组坐标(若退出,请输入-1):
8、");scanf("%d",&i);if(i==-1)break;printf("请输入顶点所指向下一个顶点的数组坐标:");scanf("%d",&j);s=(ArcNode*)malloc(sizeof(ArcNode));s->adjvex=j;s->nextarc=G->vertices[i].firstarc;G->vertices[i].firstarc=s;}}//输出邻接表voidvisit(ALGraphG){inti;ArcNode*p;print
此文档下载收益归作者所有