题31图
32. 二叉排序树的各结点的值依次为20~28,请在题32图中标出各结点的值。
题32图
33.用冒泡排序法对数据序列(55,38,65,97,76,138,27,49)进行排序,写出排序过程中的各趟结果。
四、算法设计题(本大题共2小题,每小题7分,共14分)
34.设线性表A =(a1, a2, …,am),B=(b1, b2, …,bn),试写一个按下列规则合并A,B为线性表C的算法,使得
C=(a1, b1, …, am ,bm ,bm+1, …,bn) 当m≤n时;
或者 C=(a1, b1, …, an ,bn ,an+1, …,am) 当m>n时。
线性表A,B和C均以带头结点的单链表作为存储结构,且C表利用A表和B表中的结点空间构成。(注意:单链表的长度值m和n均未显式存储。)
35. 二叉树的二叉链表类型定义如下:
typedef struct btnode {
datatype data;
struct btnode *lchild,*rchild;
} bitreptr;
写出后根遍历根指针为t的二叉树的递归算法( void postorder (bitreptr *t) )。