数据结构实验———图实验报告.doc

数据结构实验———图实验报告.doc

ID:48976289

大小:131.00 KB

页数:9页

时间:2020-02-26

数据结构实验———图实验报告.doc_第1页
数据结构实验———图实验报告.doc_第2页
数据结构实验———图实验报告.doc_第3页
数据结构实验———图实验报告.doc_第4页
数据结构实验———图实验报告.doc_第5页
资源描述:

《数据结构实验———图实验报告.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

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。