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

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

1、假设K1, ,Kn是n个关键词,试解答:

试用二叉查找树的插入算法建立一棵二叉查找树,即当关键词的插入次序为K1,K2, ,Kn时,用算法建立一棵以LLINK / RLINK 链接表示的二叉查找树。

2、请编写一个判别给定二叉树是否为二叉排序树的算法,设二叉树用llink-rlink法存储。

3、(1)p->rchild (2)p->lchild (3)p->lchild (4)ADDQ(Q,p->lchild)

(5)ADDQ(Q,p->rchild)

25. (1)t->rchild!=null (2)t->rchild!=null (3)N0++ (4)count(t->lchild)

(5)count(t->rchild)

26. .(1)top++ (2) stack[top]=p->rchild (3)top++

(4)stack[top]=p->lchild

27. (1)*ppos // 根结点(2)rpos=ipos (3)rpos–ipos (4)ipos (5)ppos+1

4、我们用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

5、(1)p->rchild (2)p->lchild (3)p->lchild (4)ADDQ(Q,p->lchild)

(5)ADDQ(Q,p->rchild)

25. (1)t->rchild!=null (2)t->rchild!=null (3)N0++ (4)count(t->lchild)

(5)count(t->rchild)

26. .(1)top++ (2) stack[top]=p->rchild (3)top++

(4)stack[top]=p->lchild

27. (1)*ppos // 根结点(2)rpos=ipos (3)rpos–ipos (4)ipos (5)ppos+1

6、设有一组初始记录关键字序列(K1,K2, ,Kn),要求设计一个算法能够在O(n)的时间复杂度内将线性表划分成两部分,其中左半部分的每个关键字均小于Ki,右半部分的每个关键字均大于等于Ki。

void quickpass(int r[], int s, int t)

{

int i=s, j=t, x=r[s];

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;}

2015年香港特别行政区数据统计摘要相关文档

最新文档

返回顶部