2013年香港特别行政区数据总结大纲

合集下载

2012年香港特别行政区数据整理基础

2012年香港特别行政区数据整理基础

1、约瑟夫环问题(Josephus问题)是指编号为1、2、…,n的n(n>0)个人按顺时针方向围坐成一圈,现从第s个人开始按顺时针方向报数,数到第m个人出列,然后从出列的下一个人重新开始报数,数到第m的人又出列,…,如此重复直到所有的人全部出列为止。

现要求采用循环链表结构设计一个算法,模拟此过程。

#include<stdlib.h>typedef int datatype;typedef struct node{datatype data;struct node *next;}listnode;typedef listnode *linklist;void jose(linklist head,int s,int m){linklist k1,pre,p;int count=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; /*新的报数起点*/}printf("%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 (n<1) printf("n<0");else{/*建表*/head=(linklist)malloc(sizeof(listnode)); /*建第一个结点*/head->data=n;r=head;for (i=n-1;i>0;i--) /*建立剩余n-1个结点*/{ p=(linklist)malloc(sizeof(listnode));p->data=i;p->next=head;head=p;}r->next=head; /*生成循环链表*/jose(head,s,m); /*调用函数*/}}2、根据二叉排序树中序遍历所得结点值为增序的性质,在遍历中将当前遍历结点与其前驱结点值比较,即可得出结论,为此设全局指针变量pre(初值为null)和全局变量flag,初值为true。

2013年香港特别行政区基础数据深入

2013年香港特别行政区基础数据深入
#define true 1
#define false 0
typedef struct node
{datatype data; struct node *llink,*rlink;} *BTree;
void JudgeBST(BTree t,int flag)
// 判断二叉树是否是二叉排序树,本算法结束后,在调用程序中由flag得出结论。
}
r[i]=x;
}
8、约瑟夫环问题(Josephus问题)是指编号为1、2、…,n的n(n>0)个人按顺时针方向围坐成一圈,现从第s个人开始按顺时针方向报数,数到第m个人出列,然后从出列的下一个人重新开始报数,数到第m的人又出列,…,如此重复直到所有的人全部出列为止。现要求采用循环链表结构设计一个算法,模拟此过程。
int BPGraph (AdjMatrix g)
//判断以邻接矩阵表示的图g是否是二部图。
{int s[]; //顶点向量,元素值表示其属于那个集合(值1和2表示两个集合)
int Q[];//Q为队列,元素为图的顶点,这里设顶点信息就是顶点编号。
while(k1->next!=k1) /*当循环链表中的结点个数大于1时*/
{ p=k1; /*从k1开始报数*/
count=1;
while (count!=m) /*连续数m个结点*/
{ pre=p;
p=p->next;
{ if(t!=null && flag)
{ Judgebst(t->llink,flag);// 中序遍历左子树
if(pre==null)pre=t;// 中序遍历的第一个结点不必判断

2013香港特别行政区公选领导干部(必备资料)

2013香港特别行政区公选领导干部(必备资料)

1、我国刑法规定,刑罚分为( AB )。

A.主刑 B.附加刑 C.独立刑 D.自由刑 E.耻辱刑2、国家实施西部大开发工程( C )。

A.①② B.②③ C.①③ D.③④①体现了社会主义本质的要求②最终目的是为了民族团结③有助于调整经济结构,实现地区经济协调发展④是市场在资源配置中起基础性作用3、我国社会主义社会的基本政治制度包括()。

A.人民民主专政制度 B.人民代表大会制度C.共产党领导的多党合作制度和政治协商制度D.民族区域自治制度4、国家公务员考核的重点是( A )。

A.绩 B.德 C.能 D.勤5、政党,面临的最根本课题,是()。

A.能不能始终代表先进文化的前进方向B.能不能始终代表最广大人民的根本利益,始终全心全意为人民服务C.能不能始终代表中国先进生产力的发展要求D.能不能始终代表中化民族的前进方向6、中共十一届三中全会是建国以来我党历史上具有深远意义的伟大转折,表现在:()。

A.党在思想、政治、组织等领域的全面拨乱反正从此开始B.伟大的社会主义改革开放由此揭开序幕C.建设有中国特色的社会主义新道路以些为起点D.当代中国的马克思主义——邓小平理论,由此开始逐步形成和发展起来E.标志着中国从此进入社会主义事业发展的新时期,成为21世纪中国第三次历史巨变的开端7、我国民族政策的基本原则()。

A.共同繁荣B.民族区域自治C.民族平等团结D.培养和使用民族干部8、创新是一个民族进步的灵魂,是一个国家兴旺发达的不竭动力,也是一个政党永葆生机的源泉。

创新,包括()。

A.理论创新 B.制度创新C.科技创新 D.文化创新E.其他各方面的创新9、国家机关工作人员行使职权时违背法律授权的宗旨,超越职权范围或者违反职权行使的程序,从而导致公共财产、国家和人民利益遭受重大损失的行为,应判处()。

A.玩忽职守罪B.利用职权罪C.徇私枉法罪D.徇私舞弊罪10、()具有国际金融合作的性质,条件比较优惠,如利率较低,期限较长,含有宽限期等。

2014年香港特别行政区数据概述大纲

2014年香港特别行政区数据概述大纲

1、设一组有序的记录关键字序列为(13,18,24,35,47,50,62,83,90),查找方法用二分查找,要求计算出查找关键字62时的比较次数并计算出查找成功时的平均查找长度。

2、设一棵树T中边的集合为{(A,B),(A,C),(A,D),(B,E),(C,F),(C,G)},要求用孩子兄弟表示法(二叉链表)表示出该树的存储结构并将该树转化成对应的二叉树。

3、约瑟夫环问题(Josephus问题)是指编号为1、2、…,n的n(n>0)个人按顺时针方向围坐成一圈,现从第s个人开始按顺时针方向报数,数到第m个人出列,然后从出列的下一个人重新开始报数,数到第m的人又出列,…,如此重复直到所有的人全部出列为止。

现要求采用循环链表结构设计一个算法,模拟此过程。

#include<stdlib.h>typedef int datatype;typedef struct node{datatype data;struct node *next;}listnode;typedef listnode *linklist;void jose(linklist head,int s,int m){linklist k1,pre,p;int count=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; /*新的报数起点*/}printf("%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 (n<1) printf("n<0");else{/*建表*/head=(linklist)malloc(sizeof(listnode)); /*建第一个结点*/ head->data=n;r=head;for (i=n-1;i>0;i--) /*建立剩余n-1个结点*/{ p=(linklist)malloc(sizeof(listnode));p->data=i;p->next=head;head=p;}r->next=head; /*生成循环链表*/jose(head,s,m); /*调用函数*/}}。

2013年香港特别行政区理论数据摘要

2013年香港特别行政区理论数据摘要

1、设t是给定的一棵二叉树,下面的递归程序count(t)用于求得:二叉树t中具有非空的左,右两个儿子的结点个数N2;只有非空左儿子的个数NL;只有非空右儿子的结点个数NR和叶子结点个数N0。

N2、NL、NR、N0都是全局量,且在调用count(t)之前都置为0.typedef struct node{int 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)___ NR++; else (3)__ ;if(t->lchild!=NULL)(4)____; if (t->rchild!=NULL) (5)____;}26.树的先序非递归算法。

void example(b)btree *b;{ btree *stack[20], *p;int top;if (b!=null){ top=1; stack[top]=b;while (top>0){ p=stack[top]; top--;printf(“%d”,p->data);if (p->rchild!=null){(1)___; (2)___;}if (p->lchild!=null)(3)___; (4)__;}}}}2、设有一组初始记录关键字为(45,80,48,40,22,78),要求构造一棵二叉排序树并给出构造过程。

3、由二叉树的前序遍历和中序遍历序列能确定唯一的一棵二叉树,下面程序的作用是实现由已知某二叉树的前序遍历和中序遍历序列,生成一棵用二叉链表表示的二叉树并打印出后序遍历序列,请写出程序所缺的语句。

#define MAX 100typedef struct Node{char info; struct Node *llink, *rlink; }TNODE;char pred[MAX],inod[MAX];main(int argc,int **argv){ TNODE *root;if(argc<3) exit 0;strcpy(pred,argv[1]); strcpy(inod,argv[2]);root=restore(pred,inod,strlen(pred));postorder(root);}TNODE *restore(char *ppos,char *ipos,int n){ TNODE *ptr; char *rpos; int k;if(n<=0) return NULL;ptr->info=(1)_______;for((2)_______ ; rpos<ipos+n;rpos++) if(*rpos==*ppos) break;k=(3)_______;ptr->llink=restore(ppos+1, (4)_______,k );ptr->rlink=restore ((5)_______+k,rpos+1,n-1-k);return ptr;}postorder(TNODE*ptr){ if(ptr=NULL) return;postorder(ptr->llink); postorder(ptr->rlink); printf(“%c”,ptr->info); }4、给定n个村庄之间的交通图,若村庄i和j之间有道路,则将顶点i和j用边连接,边上的Wij表示这条道路的长度,现在要从这n个村庄中选择一个村庄建一所医院,问这所医院应建在哪个村庄,才能使离医院最远的村庄到医院的路程最短?试设计一个解答上述问题的算法,并应用该算法解答如图所示的实例。

2013年香港特别行政区数据要领要领

2013年香港特别行政区数据要领要领

1、二路插入排序是将待排关键字序列r[1..n]中关键字分二路分别按序插入到辅助向量d[1..n]前半部和后半部(注:向量d可视为循环表),其原则为,先将r[l]赋给d[1],再从r[2] 记录开始分二路插入。

编写实现二路插入排序算法。

2、设一棵二叉树的结点结构为 (LLINK,INFO,RLINK),ROOT为指向该二叉树根结点的指针,p 和q分别为指向该二叉树中任意两个结点的指针,试编写一算法ANCESTOR(ROOT,p,q,r),该算法找到p和q的最近共同祖先结点r。

3、本题应使用深度优先遍历,从主调函数进入dfs(v)时,开始记数,若退出dfs()前,已访问完有向图的全部顶点(设为n个),则有向图有根,v为根结点。

将n个顶点从1到n编号,各调用一次dfs()过程,就可以求出全部的根结点。

题中有向图的邻接表存储结构、记顶点个数的变量、以及访问标记数组等均设计为全局变量。

建立有向图g的邻接表存储结构参见上面第2题,这里只给出判断有向图是否有根的算法。

int num=0, visited[]=0 //num记访问顶点个数,访问数组visited初始化。

const n=用户定义的顶点数;AdjList g ; //用邻接表作存储结构的有向图g。

void dfs(v){visited [v]=1; num++; //访问的顶点数+1if (num==n) {printf(“%d是有向图的根。

\n”,v); num=0;}//ifp=g[v].firstarc;while (p){if (visied[p->adjvex]==0) dfs (p->adjvex);p=p->next;} //whilevisited[v]=0; num--; //恢复顶点v}//dfsvoid JudgeRoot()//判断有向图是否有根,有根则输出之。

{static int i ;for (i=1;i<=n;i++ ) //从每个顶点出发,调用dfs()各一次。

中国财政年鉴2014指标数据:香港特别行政区2013年政府支出统计(一般收入账目及各基金)

中国财政年鉴2014指标数据:香港特别行政区2013年政府支出统计(一般收入账目及各基金)
535.37 14.75 19.87 3.54 7.49 9.65 620.67 3013.60
2011/2012
546.90 38.69 197.37 226.14 448.88
320.97 382.27 93.04 116.33 19.85 34.52 539.50 2964.46
14.88 6.67 7.60 0.40 1.18
608.37 0.12 20.61 0.37 6.55 9.16 675.91 3640.37
摘编自《中国财政年鉴2014》
账目及各基金)
2012/2013 2013/2014
582.18 42.92 218.43 239.26 479.34
340.67 424.78 101.96 135.50 21.61 36.56 406.21 3029.42
0.99
创新及科技基金
7.21
奖券基金
7.37
非经营支出总额
581.58
政府支出总额
2925.25
2010/2011
510.18 35.67 180.27 210.05 414.76
296.16 338.00 85.56 110.16 18.33 32.59 161.20 2392.93
13.03 7.00 8.76 0.34 0.87
香港特别行政区2013年政府支出统计(一般收入账目及各基金)
香港特别行政区2013年政府支出统计(一般收入账目及各基金)
单位:亿港元
项目
2009/2010
经营支出
经常支出
4.06
退休金
169.11
部门支出
207.40
其他费用
428.18
资助金

2013年香港特别行政区分析数据入门

2013年香港特别行政区分析数据入门

1、设有两个集合A和集合B,要求设计生成集合C=A∩B的算法,其中集合A、B和C用链式存储结构表示。

typedef struct node {int data; struct node *next;}lklist;void intersection(lklist *ha,lklist *hb,lklist *&hc){lklist *p,*q,*t;for(p=ha,hc=0;p!=0;p=p->next){ for(q=hb;q!=0;q=q->next) if (q->data==p->data) break;if(q!=0){ t=(lklist *)malloc(sizeof(lklist)); t->data=p->data;t->next=hc; hc=t;} }}2、假设K1,…,Kn是n个关键词,试解答:试用二叉查找树的插入算法建立一棵二叉查找树,即当关键词的插入次序为K1,K2,…,Kn 时,用算法建立一棵以LLINK / RLINK 链接表示的二叉查找树。

3、我们用l代表最长平台的长度,用k指示最长平台在数组b中的起始位置(下标)。

用j 记住局部平台的起始位置,用i指示扫描b数组的下标,i从0开始,依次和后续元素比较,若局部平台长度(i-j)大于l时,则修改最长平台的长度k(l=i-j)和其在b中的起始位置(k=j),直到b数组结束,l即为所求。

void Platform (int b[ ], int N)//求具有N个元素的整型数组b中最长平台的长度。

{l=1;k=0;j=0;i=0;while(i<n-1){while(i<n-1 && b[i]==b[i+1]) i++;if(i-j+1>l) {l=i-j+1;k=j;} //局部最长平台i++; j=i; } //新平台起点printf(“最长平台长度%d,在b数组中起始下标为%d”,l,k);}// Platform。

2015年香港特别行政区数据统计纲要

2015年香港特别行政区数据统计纲要

1、冒泡排序算法是把大的元素向上移(气泡的上浮),也可以把小的元素向下移(气泡的下沉)请给出上浮和下沉过程交替的冒泡排序算法。

48.有n个记录存储在带头结点的双向链表中,现用双向起泡排序法对其按上升序进行排序,请写出这种排序的算法。

(注:双向起泡排序即相邻两趟排序向相反方向起泡)2、两棵空二叉树或仅有根结点的二叉树相似;对非空二叉树,可判左右子树是否相似,采用递归算法。

int Similar(BiTree p,q) //判断二叉树p和q是否相似{if(p==null && q==null) return (1);else if(!p && q || p && !q) return (0);else return(Similar(p->lchild,q->lchild) && Similar(p->rchild,q->rchild)) }//结束Similar3、因为后序遍历栈中保留当前结点的祖先的信息,用一变量保存栈的最高栈顶指针,每当退栈时,栈顶指针高于保存最高栈顶指针的值时,则将该栈倒入辅助栈中,辅助栈始终保存最长路径长度上的结点,直至后序遍历完毕,则辅助栈中内容即为所求。

void LongestPath(BiTree bt)//求二叉树中的第一条最长路径长度{BiTree p=bt,l[],s[]; //l, s是栈,元素是二叉树结点指针,l中保留当前最长路径中的结点int i,top=0,tag[],longest=0;while(p || top>0){ while(p) {s[++top]=p;tag[top]=0; p=p->Lc;} //沿左分枝向下if(tag[top]==1) //当前结点的右分枝已遍历{if(!s[top]->Lc && !s[top]->Rc) //只有到叶子结点时,才查看路径长度if(top>longest) {for(i=1;i<=top;i++) l[i]=s[i]; longest=top; top--;}//保留当前最长路径到l栈,记住最高栈顶指针,退栈}else if(top>0) {tag[top]=1; p=s[top].Rc;} //沿右子分枝向下}//while(p!=null||top>0)}//结束LongestPath。

2013年香港特别行政区数据整理深入

2013年香港特别行政区数据整理深入
{p->lchild=null; //处理无左子女
s.lvl=++R; s.l=i+1; s.f=p; s.lr=2; enqueue(Q,s);
}
else if (i==s.h)
{p->rchild=null; //处理无右子女
s.lvl=++R; s.h=i-1; s.f=p; s.lr=1; enqueue(Q,s);
9、数组A和B的元素分别有序,欲将两数组合并到C数组,使C仍有序,应将A和B拷贝到C,只要注意A和B数组指针的使用,以及正确处理一数组读完数据后将另一数组余下元素复制到C中即可。
void union(int A[],B[],C[],m,n)
//整型数组A和B各有m和n个元素,前者递增有序,后者递减有序,本算法将A和B归并为递增有序的数组C。
i++; j=i; } //新平台起点
printf(“最长平台长度%d,在b数组中起始下标为%d”,l,k);
}// Platform
8、请设计一个算法,要求该算法把二叉树的叶子结点按从左到右的顺序连成一个单链表,表头指针为head。 二叉树按二叉链表方式存储,链接时用叶子结点的右指针域来存放单链表指针。分析你的算法的时、空复杂度。
51. 借助于快速排序的算法思想,在一组无序的记录中查找给定关键字值等于key的记录。设此组记录存放于数组r[l..h]中。若查找成功,则输出该记录在r数组中的位置及其值,否则显示“not find”信息。请编写出算法并简要说明算法思想。
7、我们用l代表最长平台的长度,用k指示最长平台在数组b中的起始位置(下标)。用j记住局部平台的起始位置,用i指示扫描b数组的下标,i从0开始,依次和后续元素比较,若局部平台长度(i-j)大于l时,则修改最长平台的长度k(l=i-j)和其在b中的起始位置(k=j),直到b数组结束,l即为所求。

中国财政年鉴2015数据:香港特别行政区历年主要指标概况统计(2010-2014)(一)

中国财政年鉴2015数据:香港特别行政区历年主要指标概况统计(2010-2014)(一)

113.5
117.9
118.9
对外贸易
商品贸易
进口(亿港元)
33648
37646
39122
港产品出口(亿港元)
695
657
588
转口(亿港元)
29615
32716
33755
服务贸易
服务出口④(亿港元)
6257
7107
7640
服务进口④(亿港元)
5469
5780
5943
国民收入及国际收支平衡
本地生产总值
26.5
27.7
29.1
进出口贸易及批发
54.7
53.9
56.4
零售.住宿及餐饮服务②
55.8
57.8
59.1.4
43.4
金融.保险.地产.专业及商用服务
64.1
67.6
68.7
公共行政.社会及个人服务
88.5
91.5
93.5
实际工资指数③(1992年9月=100)
6.0
6.1
婴儿死亡率(‰)
1.7
1.3
1.5
(按每千名登记活产婴儿计算)
劳工
劳动人口(万人)
363.1
370.3
378.5
劳动人口参与率(%)
59.6
60.1
60.5
失业率(%)
4.3
3.4
3.3
就业人数(万人)
347.4
357.6
366.1
选定行业的就业人数(万人)
制造
13.3
13.3
13.4
建筑
20665 288837 295
1244 -888 -355 591(盈余)

2012年香港特别行政区数据整理摘要

2012年香港特别行政区数据整理摘要
while(i<j){
while (i<j && r[j]>x) j=j-1; if (i<j) {r[i]=r[j];i=i+1;}
while (i<j && r[i]<x) i=i+1; if (i<j) {r[j]=r[i];j=j-1;}
}
r[i]=x;
}
8、设t是给定的一棵二叉树,下面的递归程序count(t)用于求得:二叉树t中具有非空的左,右两个儿子的结点个数N2;只有非空左儿子的个数NL;只有非空右儿子的结点个数NR和叶子结点个数N0。N2、NL、NR、N0都是全局量,且在调用count(t)之前都置为0.
//保留当前最长路径到l栈,记住最高栈顶指针,退栈
}
else if(top>0) {tag[top]=1; p=s[top].Rc;} //沿右子分枝向下
}//while(p!=null||top>0)
}//结束LongestPath
11、对二叉树的某层上的结点进行运算,采用队列结构按层次遍历最适宜。
(2).判断有向图G是否有根,若有,则打印出所有根结点的值。
3、两棵空二叉树或仅有根结点的二叉树相似;对非空二叉树,可判左右子树是否相似,采用递归算法。
int Similar(BiTree p,q) //判断二叉树p和q是否相似
{if(p==null && q==null) return (1);
if(argc<3) exit 0;
strcpy(pred,argv[1]); strcpy(inod,argv[2]);
root=restore(pred,inod,strlen(pred));

香港特别行政区主要年份主要社会经济指标统计(1990-2019)

香港特别行政区主要年份主要社会经济指标统计(1990-2019)

房屋及物业
已登记物业买卖合约涉及的价值 (亿港元)
住宅
非住宅
总计⑥
楼宇售价指数(1999年=100)
私人住宅单位
44.8
私人写字楼(甲级.乙级及丙级) 99.1
楼宇租金指数(1999年=100)
私人住宅单位
76.7
私人写字楼(甲级.乙级及丙级) 137.3
政府收支.货币.金融(亿港元)
政府储备结余⑦
79
83
87
89
摘编自《中国统计摘要2020》
10975 1960 410 6515 91
10236@ 1830 406@ 5591 79
3.8 9876 173120
7.7 14551 218318
6.8 21687 308753
2.9 27355 367130
-1.2 27030 360042
按当年价格计算 本地生产总值年增长率(%) 本地生产总值(亿港元) 人均本地生产总值(港元)
11.7 5993 105050
4.0 13375 200675
765
政府收入总额⑧
895
政府支出总额⑧
856
货币供应量m3
港元⑨
5712
外币⑩
7168
总计
12880
运输.通讯及旅游
进出香港的货物
总卸下(万吨)
6076
1642 1182 2434 1391
1684 541 2225
89.6 89.9
98.1 98.5
4303 2251 2329
20024 16904 36928
101.7 10815 1824
服务
增加价值(亿港元)

中国财政年鉴2019:香港特别行政区历年按当年价格计算的生产法本地生产总值统计(2013-2017)

中国财政年鉴2019:香港特别行政区历年按当年价格计算的生产法本地生产总值统计(2013-2017)

摘编自《中国财政年鉴2019》①由于要为采矿及采石业个别机构单位的数据保密.因此采矿及采石业的数字会包括在「农业.渔业.采矿②住宿服务包括酒店.宾馆.旅舍及其他提供短期住宿服务的机构单位③统计差额是以当年价格计算.以支出法编制的本地生产总值与以生产法编制的本地生产总值之间的差过程中数据来源及估算方法有所不同而引致的.统计差额是以其占当时市价计算的本地生产总值的百分比在±0.05%之内
香港特别行政区历年按当年价格计算的生产法本地生产总值统计(2013-2017)。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1、请设计一个算法,要求该算法把二叉树的叶子结点按从左到右的顺序连成一个单链表,表头指针为head。

二叉树按二叉链表方式存储,链接时用叶子结点的右指针域来存放单链表指针。

分析你的算法的时、空复杂度。

2、证明由二叉树的中序序列和后序序列,也可以唯一确定一棵二叉树。

29. ①试找出满足下列条件的二叉树
1)先序序列与后序序列相同 2)中序序列与后序序列相同
3)先序序列与中序序列相同 4)中序序列与层次遍历序列相同
3、证明由二叉树的中序序列和后序序列,也可以唯一确定一棵二叉树。

当n=1时,只有一个根结点,由中序序列和后序序列可以确定这棵二叉树。

设当n=m-1时结论成立,现证明当n=m时结论成立。

设中序序列为S1,S2,…,Sm,后序序列是P1,P2,…,Pm。

因后序序列最后一个元素Pm是根,则在中序序列中可找到与Pm相等的结点(设二叉树中各结点互不相同)Si(1≤i≤m),因中序序列是由中序遍历而得,所以Si是根结点,S1,S2,…,Si-1是左子树的中序序列,而Si+1,Si+2,…,Sm是右子树的中序序列。

若i=1,则S1是根,这时二叉树的左子树为空,右子树的结点数是m-1,则{S2,S3,…,Sm}和{P1,P2,…,Pm-1}可以唯一确定右子树,从而也确定了二叉树。

若i=m,则Sm是根,这时二叉树的右子树为空,左子树的结点数是m-1,则{S1,S2,…,Sm-1}和{P1,P2,…,Pm-1}唯一确定左子树,从而也确定了二叉树。

最后,当1<i<m时,Si把中序序列分成{S1,S2,…,Si-1}和{Si+1,Si+2,…,Sm}。

由于后序遍历是“左子树—右子树—根结点”,所以{P1,P2,…,Pi-1}和{Pi,Pi+1,…Pm-1}是二叉树的左子树和右子树的后序遍历序列。

因而由{S1,S2,…,Si-1}和{P1,P2,…,Pi-1}
可唯一确定二叉树的左子树,由{Si+1,Si+2,…,Sm}和
{Pi,Pi+1,…,Pm-1}可唯一确定二叉树的右子树。

4、我们可用“破圈法”求解带权连通无向图的一棵最小代价生成树。

所谓“破圈法”就是“任取一圈,去掉圈上权最大的边”,反复执行这一步骤,直到没有圈为止。

请给出用“破圈法”求解给定的带权连通无向图的一棵最小代价生成树的详细算法,并用程序实现你所给出的算法。

注:圈就是回路。

相关文档
最新文档