《数据结构》上机实验报告—有向图的邻接表的建立及遍历(共6页).doc
《《数据结构》上机实验报告—有向图的邻接表的建立及遍历(共6页).doc》由会员分享,可在线阅读,更多相关《《数据结构》上机实验报告—有向图的邻接表的建立及遍历(共6页).doc(6页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上福州大学数计学院数据结构上机实验报告专业和班级:信息计算科学与应用数学6班学号姓名成绩实验名称图的有关操作实验内容有向图的邻接表的建立及遍历实验目的和要求【实验目的】 掌握图的存储思想及其存储实现。 掌握图的深度、广度优先遍历算法思想及其程序实现。掌握图的常见应用算法的思想及其程序实现。问题描述和主要步骤【实验内容】1. 键盘输入数据,建立一个有向图的邻接表。2在有向图的邻接表的基础上计算各顶点的度。3采用邻接表存储实现有向图的深度优先遍历。4采用邻接表存储实现有向图的广度优先遍历。【主要程序】#include#include#include#define MAX_V
2、ERTEX_NUM 20#define OK 1#define ERROR 0#define OVERFLOW 0int visitedMAX_VERTEX_NUM;typedef struct ArcNode/表结点int adjvex;/该弧所指向的顶点的位置struct ArcNode *nextarc;/指向下一条弧的指针char *info;/该弧相关信息的指针ArcNode;typedef struct VNode/头结点char data;/顶点信息ArcNode *firstarc;/第一个表结点的地址,指向第一条依附顶点的弧的指针VNode,AdjListMAX_VERTEX
3、_NUM; /头结点,头结点的顺序表AdjList类型typedef struct /图结构AdjList vertices;int vexnum,arcnum;/图的当前顶点数与弧数ALGraph;typedef struct QNode/用于BFS遍历的附设链队列结点结构int data;struct QNode *next;QNode,*QueuePtr;typedef struct/链队列QueuePtr front;QueuePtr rear;LinkQueue;int InitQueue(LinkQueue &Q)/初始化链队Q.front=Q.rear=(QueuePtr)mal
4、loc(sizeof(QNode);if(!Q.front) exit(OVERFLOW);Q.front-next=NULL;return OK;int EnQueue(LinkQueue &Q,int e)/元素e入队QueuePtr p;p=(QueuePtr)malloc(sizeof(QNode);if(!p) exit(OVERFLOW);p-next=NULL;p-data=e;Q.rear-next=p;Q.rear=p;return OK;int DeQueue(LinkQueue &Q,int &e)/队首元素出队,由e返回其值QueuePtr p;if(Q.front=Q
5、.rear) exit(OVERFLOW);p=Q.front-next;e=p-data;Q.front-next=p-next;if(Q.rear=p)Q.rear=Q.front;free(p);returnOK;int EmptyQueue(LinkQueue Q)/判断队列Q是否为空if(Q.front=Q.rear)return 1;return 0;int LocateVex(ALGraph G,char v)/查找值为v的顶点在顶点向量G.vexs中的位置int i;for(i=0;iadjvex;elsereturn -1;int NextAdjVex(ALGraph G,c
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 上机 实验 报告 邻接 建立 遍历
限制150内