无向图的邻接表表示及遍历实验报告电子版(共7页).doc





《无向图的邻接表表示及遍历实验报告电子版(共7页).doc》由会员分享,可在线阅读,更多相关《无向图的邻接表表示及遍历实验报告电子版(共7页).doc(7页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上福州大学数计学院数据结构上机实验报告专业:应用数学学号姓名班级实验名称图的实验实验内容无向图的邻接表表示及遍历实验目的和要求掌握图的邻接表表示方法及实现技术掌握在图的邻接表表示方式下的图的遍历操作问题描述和主要步骤【实验内容】从键盘输入无向网络G的顶点个数v、边的个数e。建立由v个顶点、e条边构成的无向图G,采用邻接表表示。V个顶点的值由键盘输入,元素类型为字符型,e条边的信息亦由键盘输入 调用图的深度优先搜索遍历图并输出相应的遍历序列代码:#include stdafx.h#include #include #define MAX 20 /无向图最大顶点数typed
2、ef struct nodeint adjvex; /顶点序号struct node *next; /指向下一条弧的顶点*pointer;typedef structchar data; /顶点名称pointer first; /头指针headtype;typedef structheadtype adlistMAX;int n; /顶点数int e; /边数lkgraph;typedef struct treechar data; /结点名称struct tree *lchild; /存放第一个孩子struct tree *rchild; /存放兄弟*BTree;typedef struct
3、int *base;int *top;SqStack; /用于简单路径算法,最大长度为MAXbool visitMAX; /遍历中判断是否被访问int t_num; /非连通图生成子树BTree tMAX;bool flag=false; /判断是否存在简单路径void creategraph(lkgraph *g)/建立无向图的邻接表pointer p;int i,j,e=0;char c; /吸收回车printf(无向图邻接表的建立:n);printf( 顶点位置序号从0开始n);printf( 顶点名称用一个字符表示n);s1: printf( 请输入无向图的顶点数(小于等于20):n)
4、;scanf(%d,&i);if(i20) goto s1; /顶点数目输入不符合要求g-n=i;for(i=0;in;i+) /初始化c=getchar();printf(请输入顶点名称:n);scanf(%c,&g-adlisti.data);g-adlisti.first=NULL;printf(请输入一条边的两个顶点,用“,”隔开(当输入的第一个数为-1时,停止输入):n);scanf(%d,%d,&i,&j);while(i!=-1)e+;p=(pointer)malloc(sizeof(struct node);p-adjvex=j;p-next=g-adlisti.first;g
5、-adlisti.first=p;p=(pointer)malloc(sizeof(struct node);p-adjvex=i;p-next=g-adlistj.first;g-adlistj.first=p;printf(请输入一条边的两个顶点,用“,”隔开(当输入的第一个数为-1时,停止输入):n);scanf(%d,%d,&i,&j);g-e=e;void show(lkgraph *g)/邻接表输出pointer p;printf(邻接表输出:n);for(int i=0;in;i+)printf(%c: ,g-adlisti.data);p=g-adlisti.first;whi
6、le(p!=NULL)printf(%5d,p-adjvex);p=p-next;printf(n);void DFS(lkgraph *g,int v,BTree q)/从顶点v出发,递归地深度优先遍历gvisitv=true;BTree q1,l;q1=(BTree)malloc(sizeof(struct tree);q1-lchild=NULL;q1-rchild=NULL;printf(%5c,g-adlistv.data);q-data=g-adlistv.data;pointer p=g-adlistv.first;for(int w=0;p!=NULL;p=p-next)w=p
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 邻接 表表 遍历 实验 报告 电子版

限制150内