2023年山东大学数据结构实验报告七.docx
![资源得分’ 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年山东大学数据结构实验报告七.docx》由会员分享,可在线阅读,更多相关《2023年山东大学数据结构实验报告七.docx(6页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、数据结构实验报告实验七实验题目:图的算法学号:日期:2023.1 1 .26 班级:计机14. 1姓名:刘方铮Ema i 1:实验目的:1、掌握图的基本概念,描述方法;遍历方法。任务规定:1、创建图类。二叉树的存储结构使用邻接矩阵或链表。2、提供操作:遍历、BFS、DFS3、对建立好的图,执行上述各操作。4、输出生成树。5、输出最小生成树。软件环境:Win7操作系统开发工具:v i s ua 1 C+ 6.0实验代码;i f nde f GRAPH_H#define G RAPH_Hincl u de# incl u de u s i ng nam e space std;templa t e
2、 class edge(p u bli c :e dg e ( i n t i,int j, i nt w)ver t exl = i ; v erte x 2=j; we i g h t=w; )edge(int i,i n t j)vert e xl =i; vertex2=j; we i ght= 1 ;)T v e r tex 1;T verte x 2;T wei g h t ;;tempi a te c 1 ass g rap hp u blic:gnip h () )gra p h() v i r t u a 1 i n t numberO f V ertices()=0;/返回
3、图顶点数virtu a 1 i n t numb e r0 f Ed g es()=();/返回图边数vi r tual bool ex i stsEd g e(in t ,int)= 0 ;/ / 假如边(i ,j)存在,返回t ru e,否则返回fal s ev i r tual vo i d i nser t E d ge (edge t h e E dge)= 0 ;/插入边v i r tu a I void era s eEdge(int,int)=O;/删除边r t u al i nt de g ree(int) =0;返回顶点 i 的度,只用于无向图vi r tual i n t
4、 inDegr e e(int)=0;返回顶点 i 的入度virt u al i n t ou t De g r e e (i n t ) =0;返回顶点 i 的出度vir t ual bo o 1 directed() = 0 ;/若为有向图返回truevir t ual bool weigh ted ()=0;/ / 若为加权图返回trueprote c t e d:pr i vate:;tern p 1 at e c 1 as s adjac e nc y Wgra p h : p ub 1 ic gra p h / / 加权图的邻接矩 阵结构(pro t e ct e d :i nt
5、n;顶点个数i n t e;/边的个数T/邻接数组T n oEdge;/表达不存的边T m a xW e igh t ; / /最大权pub 1 i c:adj ace ncyW gra p h(i n t n umbe r O f V e r t ices =0 , T t h eNo Ed g e = 0 )i f ( n umbcrOfV e rtice s =0 ; return; n = n umb e rO f V ertic e s ;e = 0;n oE d ge = t heNoEd g e;ma x W e i ghl= 0 ;make2dArr y (a,n+l, n+1
6、);)-adj a c enc y Wg r aph()(fo r (int i =0; i=n;i+)d e 1 e te _ a i;d e lele a ;a =NU L L;)int num b erOfV e r t i ce s () return n ;i n t n umbe r OfE d ges () r e t urn e;bool w e i ght e d ( ) re t u r n t r ue; )bool directed() retu r n f a 1 se;b o ol exi s t s Edge(int i jnt j)/返回值为真当且仅当(i,j)
7、是图的一条边if (il II J n |jn | |ai j =noEdge) ret urn false;elseretu r n t rue;)vo i d ins Ed g e(i n t i, i n t j,int w)插入边if(wm a xWeigh t ) maxW e ight=w;ed g e ed(i, j ,w);i n sert E dge(ed);)vo i d eras e E dg e ( i nt i,int j) /删除边(i,j)i f (i=l & j=l & i= n & j=n & ai jj!=no E d ge)aliJUJ = noEdge;
8、a j i= no Edge;e;)bool c hec k Ve r t e x(in t th e Ve r tex)拟定为有效顶点i f (theVertexn) ret u rn fa 1 se;el s e retu r n true;)i n t d e g ree (int th e Vert e x) / /返回顶点 theVerte x 的度i f (! checkVertex( t he V er t ex) )co u t no vertex t h eVertexe n dl;return -1;)i nt sum=O;fo r (int i= l;i=n;i+)i f
9、 (a t he V e rtexil!=noEd g e ) sum+;retur n sum;1int i nDegre e (int the Vertex)(cou t ” inD e grc e () und e fi n cd;return 0;)int o utD e g r e e (in t the Ver t ex)(cout outD e gree() un d e fi n e d;r eturn 0;)vo i d ou t pu t ()输出邻接矩阵for(int i =l;i=n;i+ ) f or(int j =l;j=n;j+) couta i j cou te
10、nd 1 ;)v oi d bfs(int v)(i n t r e achn+ 1 ;f o r(int i =1; i=n;i+) re a chi=0; b f si ( v ,reach,-l);)v o id dfs (i n t v)in t reachn4-1;for (int i=l;i=n; i+) r each i= 0 ; d fsl (v, rea c h,-l);void ma keT r ee(in t v)输出生成树ad j ace n cyWg r aph aw g 0(n,no E d g e);i n t r e a ch n+1;fb r (int i=l
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2023 山东大学 数据结构 实验 报告
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内