注意:此页面搜索的是所有试题
数据结构国家开放大学
已知某二叉树的先序遍历序列是aecdb,中序遍历序列是eadcb,该二叉树的根结点是 1 ;


A. e B. c C. b D. a

后序遍历序列为 2 。


A. e,d,b,c,a B. c,a,b,,d,e C. a,b,d,e,c D. a.c,b,d,e,

以给定权重值5,6,17,18,25,30,为叶结点,建立一棵哈夫曼树,该树的中序遍历序列为 1


A. 5,11,28,6,17,58,30,101,18,43,25


B. 5,11,6,28,17,58,30,101,18,43,25


C. 5,11,6,28,101,58,30,17,18,43,25


D. 5,11,6,28,17,58,30,101,18,25,43


权重值为6的叶结点的哈夫曼为 .


A. 1001 B. 011 C.001 D.0001

以下函数是二叉排序树的查找算法,若二叉树为空,则返回根结点的指针,否则,返回值是指向树结点的结构指针p(查找成功p指向查到的树结点,不成功p指向为NULL)完成程序中的空格


typedef struct Bnode


{ int key;


struct Bnode *left;


struct Bnode *right;


} Bnode;


Bnode *BSearch(Bnode *bt, int k)


/* bt用于接收二叉排序树的根结点的指针,k用以接收要查找的关键字*/


{ Bnode *p;


if(bt== __(1)__)


return (bt);


p=bt;


while(p->key!= __(2)__)


{ if(k<p->key)


__(3)__;


else __(4)__;


if(p==NULL) break;


}


return(__(5)__;


}

以下程序是折半插入排序的算法


设待排序的记录序列存放在a[1],…a[n]中,以a[0]作为辅助工作单元,程序是要把a[i] 插入到已经有序的序列a[1],…a[i-1]中。


void binsort (NODE a[ ],int n)


{ int x,i,j,s,k,m;


for (i=2;i<=__(1)__;i++)


{ a[0]=a[i];


x= a[i].key;


s=1;


j=i-1;


while (s<=j)


{ m=__(2)__


if( x<a[m].key)


__(3)__


else


__(4)__


}


for ( k=i-1;k>=j+1;k- -)


__(5)__=a[k];


a[j+1]=a[0];


}


}

设查找表为(1,10,11,14,23,27,29,55,68),出对上述查找表进行折半查找所对应的判定树,为了成功查找
到元素14.需要依次与元素 进行比较。
A.23,10.1.148.23.29,27.14C.23.10,11 14 D.23.29.55,14

在等概率条件下,成功查找的平均比较次数为
A.24/9
B.25/9
C.3
D.2.5

(1)一组记录的关键字序列为(47,80,57,39,41,46),利用堆排序的方法建立的初始堆为
《堆项元素是最小元素,采用树的形式建堆]。
A 39,41 57 80.47 46B.39,41 46.80.47.57
C.39.47.46.80.41 .57D.39.41.57.80.46,47

输出堆顶元素后,调整后的堆为
A.41,47,46.80.57
C.41.57.80.47.46
8.41,57,46.80.47
D.41.80.46.47.57

对关键字序列(56,51,71,54,46,106),利用快速排序,以第一个关键字为分割元素,经过一次划分后结果

A.46.51.56.5471106
8.56.51.54.46.71.106
C.46,51 54.56,71 106
D.56.51.46.54.71,106

一组记录的关键字序列为( 60.47,80,57,39,41,46.30,利用归并排序的方法经过(2.2)归并的结果序列为 D。
A.(30.57.60.80.47 39 ,41,46 )
B.(47.60.57.80.30.39,41.46 )
C.(41.57.60.80.30.39.47.46 )
D.(47,57,6080,30,39,41,46 )

(1)对关键字席列(36,69,46,28,30,74)采用快速排序,以第一个关键字为分割元素,经过一次划分后的结果
序列为 D
A.30,28 ,46.36.69 74B.28,30 .36 .46.69 74C.28,30 .46 .36 . 69 74D.30 ,28 36 ,46 ,69 74

用冒泡法对上述序列排序,经两趟冒泡的结果序列为 A
A.36.28.30.46.69.74
C.38.36.30.46.69.74
8.36.46.28.20.69.74
D.28.36.30.46.69.74

一组记录的关键字序列为(45,40,65,43,35,951写出利用快速排序的方法,以第一个记录为基准得到的一趟划分的结果为 C
A35 40 65 45 35 95B.35 40 65 43 45 95
C35 40 43 45 65 95
D 35 40 45 43 65 95