2023年数据结构实验五实验报告.pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《2023年数据结构实验五实验报告.pdf》由会员分享,可在线阅读,更多相关《2023年数据结构实验五实验报告.pdf(24页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、少运城学优数据结构实验报告实验五图子系统实验题目:图的遍历问题_ _ _ _ _ _ _ _ _ _ _ _ _ _ _专业班级:网络工程 10 02班组 长:王星()_ _ _ _ _ _ _ _ _ _ _ _ _ _ _组 员:郭坤铭()张磊()2023年5月 1 8日赎验报告实 验 类 型 综合 实验室软件实验室二一一、实验题目图的遍历问题二、实验目的和规定1、掌握图的存储思想及其存储实现2、掌握图的深度、广度优先遍历算法思想及其程序实现3、掌握图的常见应用算法的思想及其程序实现三、需求分析本演示程序用c+6.0 编写,完毕用户用键盘输入以下结点数据:太原、成都、北京、上海、天津、大连
2、、河北。(1)建立一个有向图或无向图(自定)的邻接表并输出该邻接表。(2)在图的邻接表的基础上计算各顶点的度,并输出。(3)以有向图的邻接表为基础实现输出它的拓扑排序序列。(4)采用邻接表存储实现无向图的深度优先遍历。(5)采用邻接表存储实现无向图的广度优先遍历。(6)采用邻接矩阵存储实现无向图的最小生成树的P R I M 算法。最后,在主函数中设计一个简朴的菜单,分别调试上述算法。四、概要设计为了实现上述程序功能,需要定义如下内容基本数据类型定义如下:t y p e d e f s t r u c t n o d e /边表结点。i n t a d j ;o s t r u c t n o
3、d e *n e x t;n o d e ;t y p e d e f s t r u c t v n o d e c h a r n a m e 2 0;n o d e *f n e x t;v n o d e,A L i s t 2 0 ;t y p e d e f s t r u c t A Li s t Li s t;i n t v,e ;*G r a p h;G r a p h C r e a t D G ()G r a p h C r e a t A G O /边表结点数据域/顶点表结点/邻接表/顶点树和边数/建立无向邻接表有向邻接图v o i d P r i n t (G r a
4、 p h G)输出图的邻接表v o i d C r e a t e A N (A G r a p h *G 1)/构造邻接矩阵结构的图Gv o i d D u (G r a p h G)输出各顶点的度数v o i d D FST r a v e l (G r a p h G)深度优先遍历v o i d B F S T r a v e l (G r a p h G)/广度优先遍历五、具体设计#i n c l u d e f t i n c l u d e#i n c 1 u d e t y p e d e f s t r u c t n o d e 边表结点i n t a d j;边表结点数据域
5、 s t r u c t n o d e *n e x t;I n o d e;t y p e d e f s t r u c t v n o d e /顶点表结点c h a r n a m e 2 0;n o d e *f n e x t ;v n o d e,A Li s t 2 0;t y p e d e f s t r u c t A L i s t Li s t;/邻接表i n t v ,e ;/顶点树和边数*G r a p h ;/建立无向邻接表G r a p h C r e a t D G ()G r a p h G;i n t i,j,k;n o d e *s;G=m a l
6、l o c (2 0*s i z e o f (v n o d e);p r i n t f C 请输入图的顶点数和边数(空格隔开):);s c a n f (%d%d ,&G -v,&G e);读入顶点数和边数f o r (i=0 ;i v;i+)P r i n t f (”请输入图中第%d元素:,i +1 );8 s c a n f (%s ”,G-L i s t i .n a m e);/读入顶点信息o G-L i s t i .f ne x t=N U LL;/边表置为空表)of o r(k=0;k e;k +)P r i ntf (请请输入第%d条边的两顶点序号(空格隔开):,k +
7、1);。s canf(%d%d,&i,&j );读入边(V i,Vj)的顶点对序号;s =(no d e *)m al l oc(s i ze o f (node);生成边表结点8 S a dj=j ;s-ne x t=G-L i s t i .f n e xt;G-L i s t i .f n e xt=s;将新结点*s插入顶点V i的边表头部 s=(node *)m al l oc(s i z e o f (n o de);s-ad j=i;/邻接点序号为io s -n e x t=G-L i s t j .f ne xt;6G-L i s t j .f ne x t=s;/将新结点*s插
8、入顶点V j的边表头部)or e t u r n G;)/有向邻接图G r a p h C r e a tA G ()G ra p h G;i nt i,j ,k;n o de *q;oG=m al l oc(20*s i z e of (v no d e);叩ri ntf(请输入图的顶点数和边数【空格隔开】:);s canf r%d%d,,&G-v,&G-e);of or(i=0;i v;i +)叩r i n t f (”请输入图中第(1元素:“,i +1);MS c an f (%s”,&G-List i .nam e);/读入顶点信息G L i s t i .f ne x t=N U L
9、 L;f or(k=0;k e;k +)。P ri ntf (请请输入第%d边的两顶点序号【空格隔开】:,k+1);g s can f (%d%d”,&i,&j);。q=(n o d e *)m a l l o c(s i z e of (no de);/生成新边表结点sq-adj=j;邻接点序号为jq-ne xt=G L i s t i .f ne xt;。G L i s t i .f ne xt=q;r e turn G;/输出图的邻接表voi d P ri nt(G r ap h G)i n t i ;n o de *p;P r i n t f (t=令 B 接表=n );f or(i=
10、0;i v;i+4-)。p=G-L i s t i .f ne xt;。p ri ntf (?,%d|%3 s”,i,G-L i s t i .nam e);awh i l e(p)叩 ri ntf (-%3 s”,G L i s t p adj .n a m e);g p ri n tf p a d j);p=p-ne xt;0)op ri ntf (n );)ty p e de f s t r uc t 2ch a r v e x 20;L i s ts 20;t y p e de f s truct L i s t s 1 ;,i nt e dg e 2 0 2 0 ;/令 B 接矩阵i
11、n t vl,e 1;/顶点数和弧数 A G r ap h ;typ e d e f s tru c t i n t d a ta;/*某顶点与已构造好的部分生成树的顶点之间权值最小的顶点*/i n t l owcos t;/*某顶点与已构造好的部分生成树的顶点之间的最小权值*/C l os E d g e 20;/*用普里姆算法求最小生成树时的辅助数组*/voi d C re at e A N(A G r a p h *G 1)/*构造邻接矩阵结构的图G */i nt i,j,k,w;叩 ri ntf(请输入图的顶点数和边数(空格隔开):);s canf C%d%d&G l-v l,&G l
12、-e l);/读入顶点数和边数f or(i =1;i vl;i+)%ri ntf (请输入图d号元素:,i);s canf (%s,z,&G 1 1 i .ve x);读入顶点信息寸of or(i=l;i vl;i+)/初始化邻接矩阵f or(j=l;j vl;j +)G l-e dg e i j =9 ;。f or(k=l;k e l;k +)p ri ntf (请输入两顶点及边的权值(空格隔开):;。s canf (%d%d%d,&i,&j ,&w);G 1-e d g e i j =w;。G l e d g e j i =w;)voi d P r i n tA N(A G r ap h
13、*G 1)i nt i,j;op ri n t f (t=令口接矩阵=n );f or(i=1;i v 1;i +)f or(j =1;j vl;j+)p ri nt f (%3 d”,G 1 e dg e i j );8 P r i nt f (n );)输出各顶点的度数voi d D u(G r a p h G)i n t i,j;n ode *p;p r i n t f (nn);f or(1=0;i v;i +)g p=G-L i s t i .f n e x t;(p ri n t f (顶点2s 的度为:,G-L i s t i .n a m e);。j =0;awh i l e(
14、p)j+;。P=P -n ex t;s p ri nt f (%d n,j);)/栈typ e de f s truct s t ack oi nt x;s t r uct s t ack *ne xt;s t ack;i nt p u s h (s t a c k *s,i n t i)st a c k*p;%=(s t a c k *)m a 1 l oc(s i ze of (s t a c k);p-x=i ;叩 一 ne x t=s n e x t;s-n e xt=p;re t u r n 1;i n t p o p (s t a c k*s,i n t j )。s ta c k
15、*p =s n e x t;/保存栈顶指针j=p-x;s ne xt=p-ne xt;将栈顶元素摘下f re e (p);释放栈顶空间re t u r n j;)拓扑排序voi d T op o(G r ap h G,s tack *s)i nt i ,k,co u nt;i nt j=0;i n t i nde g re e 20 =0;nod e *p;f o r(i =0;i v;i+)p=G-L i s t i .f ne xt;;wh i 1 e(p!=N UL L)i nd e g r e e p ad j +;p=p-ne xt;)f or(i=0;i v;i+)i f (i n
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2023 数据结构 实验 报告
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内