2021年广西壮族自治区数据概述要领.docx

上传人:rrsccc 文档编号:10324647 上传时间:2021-05-09 格式:DOCX 页数:6 大小:15.34KB
返回 下载 相关 举报
2021年广西壮族自治区数据概述要领.docx_第1页
第1页 / 共6页
2021年广西壮族自治区数据概述要领.docx_第2页
第2页 / 共6页
2021年广西壮族自治区数据概述要领.docx_第3页
第3页 / 共6页
2021年广西壮族自治区数据概述要领.docx_第4页
第4页 / 共6页
2021年广西壮族自治区数据概述要领.docx_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《2021年广西壮族自治区数据概述要领.docx》由会员分享,可在线阅读,更多相关《2021年广西壮族自治区数据概述要领.docx(6页珍藏版)》请在三一文库上搜索。

1、2021年广西壮族自治区数据概述要领1、设t是给定的一棵2叉树,上面的递回步伐count(t)用于供患上:2叉树t中具备非空的左,左两个女子的结面个数N2;只要非空左女子的个数NL;只要非空左女子的结面个数NR以及叶子结面个数N0。N2、NL、NR、N0皆是齐局量,且正在挪用count(t)以前皆置为0.typedef struct nodeint data; struct node *lchild,*rchild;node;int N2,NL,NR,N0;void count(node *t)if (t-lchild!=NULL) if (1)_ N2+; else NL+;else if

2、(2)_ NR+; else (3)_ ;if(t-lchild!=NULL)(4)_; if (t-rchild!=NULL) (5)_;26.树的先序非递回算法。void example(b)btree *b; btree *stack20, *p;int top;if (b!=null) top=1; stacktop=b;while (top0) p=stacktop; top-;printf(“%d”,p-data);if (p-rchild!=null)(1)_; (2)_;if (p-lchild!=null)(3)_; (4)_;2、约瑟妇环成绩(Josephus成绩)是指编号

3、为1、2、,n的n(n0)团体按逆时针圆背围坐成一圈,现从第s团体入手下手按逆时针圆背报数,数到第m团体入列,而后从入列的下一团体从头入手下手报数,数到第m的人又入列,云云反复曲到一切的人齐部入列为行。现请求接纳轮回链表布局计划一个算法,摹拟此历程。#includetypedef int datatype;typedef struct nodedatatype data;struct node *next;listnode;typedef listnode *linklist;void jose(linklist head,int s,int m)linklist k1,pre,p;int c

4、ount=1;pre=NULL;k1=head; /*k1为报数的出发点*/while (count!=s) /*寻初初报数出发点*/pre=k1;k1=k1-next;count+;while(k1-next!=k1) /*当轮回链表中的结面个数年夜于1时*/ p=k1; /*从k1入手下手报数*/count=1;while (count!=m) /*一连数m个结面*/ pre=p;p=p-next;count+;pre-next=p-next; /*输入该结面,并删除了该结面*/printf(%4d,p-data);free(p);k1=pre-next; /*新的报数出发点*/print

5、f(%4d,k1-data); /*输入最初一个结面*/free(k1);main()linklist head,p,r;int n,s,m,i;printf(n=);scanf(%d,&n);printf(s=);scanf(%d,&s);printf(m=,&m);scanf(%d,&m);if (nelse/*建表*/head=(linklist)malloc(sizeof(listnode); /*建第一个结面*/ head-data=n;r=head;for (i=n-1;i0;i-) /*创建残余n-1个结面*/ p=(linklist)malloc(sizeof(listnode

6、);p-data=i;p-next=head;head=p;r-next=head; /*死成轮回链表*/jose(head,s,m); /*挪用函数*/3、本题应利用深度劣先遍历,从主调函数进进dfs(v)时,入手下手记数,若加入dfs()前,已经会见完有背图的齐部极点(设为n个),则有背图有根,v为根结面。将n个极点从1到n编号,各挪用一次dfs()历程,便能够供出齐部的根结面。题中有背图的毗邻表存储布局、记极点个数的变量、和会见标志数组等均计划为齐局变量。创建有背图g的毗邻表存储布局拜见下面第2题,那里只给出判别有背图是不是有根的算法。int num=0, visited=0 /num记

7、会见极点个数,会见数组visited初初化。const n=用户界说的极点数;AdjList g ; /用毗邻表做存储布局的有背图g。void dfs(v)visited v=1; num+; /会见的极点数1if (num=n) printf(“%d是有背图的根。n”,v); num=0;/ifp=gv.firstarc;while (p)if (visiedp-adjvex=0) dfs (p-adjvex);p=p-next; /whilevisitedv=0; num-; /复原极点v/dfsvoid JudgeRoot()/判别有背图是不是有根,有根则输入之。static int i ;for (i=1;inum=0; visited1.n=0; dfs(i); / JudgeRoot算法中挨印根时,输入极点正在毗邻表中的序号(下标),若要输入极点疑息,可以使用gi.vertex。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1