图的邻接表存储结构实验报告(共9页).doc
《图的邻接表存储结构实验报告(共9页).doc》由会员分享,可在线阅读,更多相关《图的邻接表存储结构实验报告(共9页).doc(9页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上图的邻接表存储结构实验报告1.需解决的的问题 利用邻接表存储结果,设计一种图。2.数据结构的定义typedef struct node/边表结点int adj;/边表结点数据域struct node *next;node;typedef struct vnode/顶点表结点char name20;node *fnext;vnode,AListM;typedef structAList List;/邻接表int v,e;/顶点树和边数*Graph;3.程序的结构图求个点度数退出程序下一次操作建立新图(有向或无向)根据序号求节点值选择操作菜单求第一、二个邻接点的序号深度遍
2、历广度遍历4.函数的功能1)建立无向邻接表Graph Create1( )/建立无向邻接表Graph G;int i,j,k;node *s;G=malloc(M*sizeof(vnode);printf(输入图的顶点数和边数:);scanf(%d%d,&G-v,&G-e);/读入顶点数和边数for(i=0;iv;i+)/建立顶点表printf(请输入图第%d个元素:,i+1);scanf(%s,&G-Listi.name);/读入顶点信息G-Listi.fnext=NULL;/边表置为空表for(k=0;ke;k+)/建立边表-建立了2倍边的结点printf(请输入边的两顶点序号:(从0考试
3、));scanf(%d%d,&i,&j);/读入边(Vi,Vj)的顶点对序号s=(node *)malloc(sizeof(node);/生成边表结点s-adj=j;s-next=G-Listi.fnext;G-Listi.fnext=s;/将新结点*s插入顶点Vi的边表头部s=(node *)malloc(sizeof(node);s-adj=i;/邻接点序号为is-next=G-Listj.fnext;G-Listj.fnext=s;/ 将新结点*s插入顶点Vj的边表头部 return G;2)建立有向邻接图Graph Create2() /有向邻接图Graph G;int i,j,k;n
4、ode *q;G=malloc(M*sizeof(vnode);printf(请输入顶点数和弧数:);scanf(%d%d,&G-v,&G-e); for (i=0;iv;i+) /建立有n个顶点的顶点表printf(请输入图第%d个元素:,i+1);scanf(%s,&G-Listi.name); /读入顶点信息G-Listi.fnext=NULL; for (k=0;ke;k+) /建立边表printf(请输入两顶点的序号:(从0开始));scanf(%d%d,&i,&j); q=(node *)malloc(sizeof(node); /生成新边表结点sq-adj=j; /邻接点序号为j
5、q-next=G-Listi.fnext; G-Listi.fnext=q; return G;3)输出无向图的邻接表void Print1(Graph G)/输出无向图的邻接表int i;node *p;printf(nttt邻接表n);for(i=0;iv;i+)p=G-Listi.fnext;printf(ttt%d | %3s,i,G-Listi.name);while(p)printf(-%d,p-adj);p=p-next;printf(n);4)输出个元素的度数void Du(Graph G)/输出各元素的度数int i,j;node *p;printf(nttt各点度数n);f
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 邻接 存储 结构 实验 报告
限制150内