数据结构(本)期末综合练习(2013年6月)(4)

2018-12-21 13:31

215789 346 图4

23.如图5所示的二叉树,其中序遍历序列为__ 5387946_______。

9 76

5 4

8

3

图5

24 .给定一组权重值,构造哈夫曼树,哈夫曼树的高度一定是唯一的,这种说法是___不正确_的。(回答正确或不正确) 三、综合题 1.(1)已知某二叉树的后序遍历序列是debca,中序遍历序列是dbeac,试画出该二叉树。 (2)若上述二叉树的各个结点的字符分别代表不同的整数(其中没有相等的),并恰好

使该树成为一棵二叉排序树,试给出a、b、c、d、e的大小关系。

(3)给出该树的前序遍历序列。 1.(1) a

c b

d e

图8

16

(2)d

2. (1) 说明什么是顶点活动网(AOV网)和拓扑序列 (2)设有向图G如下,写出3种拓扑序列,

(3)在图G中增加一条边,使图G仅有一条拓扑序列

a d b c

图6

2.

(1) 用顶点表示活动,边表示活动间先后关系的有向图称为顶点活动网

在顶点活动网中,若不存在回路,则所有活动可排列成一个线性序列,使每个活动的所 有前驱活动都排在该活动的前面,称此序列为拓扑序列 (2) abdc adbc dabc

(3) 在 b和d间添加有向边 3.(1)利用筛选过程把序列{42,82,67,102,16,32,57,52}建成堆(小根堆),画出相应的完全二叉树(不要求中间过程)。

(2)写出对上述堆对应的完全二叉树进行中序遍历得到的序列。 3.(1) 42 16

67 32 82 42

102 16 32 57 82 67 57 52

52 102

初始树 堆

17

图9

(2)102,52,42,82,16,67,32,57

4.如下是一棵二叉排序树,A1,A2,…A9代表1,2,3,…9中各个不同数字, (1)给出对该树中序遍历的结果 (2) A3,A5,A7的值各为多少?

(3)请在该树中再插入一个结点9 .5作为叶结点,并使它仍然是一棵二叉排序树

A1 A2 A3 A4 A5 A6 A7 A8 A9

图7

4.

(1) A7 A4 A8 A2 A5 A9 A1 A3 A6 1 2 3 4 5 6 7 8 9 (2) 8 5 1 (3)

7 4 8 2 5 9 1 3 6 9.5

图10

5.设查找表为(11,12,13,14,15,16,17,18,19,20,21) ,元素的下标从0开始。

(1)画出对上述查找表进行折半查找所对应的判定树(树中结点用数值表示) (2)说明成功查找到元素15,19各需要经过多少次比较? (3)说明查找不到元素10,15.5各需要经过多少次比较? (4)給出中序遍历判定树的序列。

18

5(1)

16 1319 11 14 17 20

12 15 18 21

图11 (2) 4次 2次 (3)3次 4次

(4)11,12,13,14,15,16,17,18,19,20,21 6.

(1) 设有查找表{17,26,14,16,15,30,18,19,28},依次取表中数据构造一棵二叉 排序树.

(2) 对上述二叉树给出后序遍历的结果 (3). 对上述二叉树给出中后序遍历的结果

(4)) 在上述二叉树中查找元素15共要进行多少次元素的比较? 6. (1)见图6

17 (2) 15,16,14,19,18,28,30,26,17 (3) 14,15,16,17,18,19,26,28,30 (4) 4 14 26

16 18 30

28 15 19

四、程序填空题

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

设待排序的记录序列存放在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)_ n __;i++) { a[0]=a[i];

19

x= a[i].key; s=1; j=i-1;

while (s<=j)

{ m=__(2)_ (s+j)/2;__ if( x

__(4) s=m+1;___ }

for ( k=i-1;k>=j+1;k- -) __(5)_ a[k+1] __=a[k]; a[j+1]=a[0]; }

}

2.以下函数是二叉排序树的查找算法,若二叉树为空,则返回根结点的指针,否则,返回值是指向树结点的结构指针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)__ NULL ___) return (bt); p=bt;

while(p->key!= __(2)__ k ____) { if(kkey) ___(3)__ p=p->left ___;

else ___(4)_ p=p->right ____; if(p==NULL) break; }

return(___(5)_ p ____); }

3.以下函数为链栈的进栈操作,x是要进栈的结点的数据域,top为栈顶指针

struct node

{ ElemType data;

struct node *next; };

20


数据结构(本)期末综合练习(2013年6月)(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:县委书记在政协第X届委员会第X次全体会议闭幕式上的讲话

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: