五.应用题
1. 设一棵二叉树的先序、中序遍历序列分别是:ABDFCEGH 、BFDAGEHC,
(1)画出这棵二叉树;
(2)写这棵二叉树的后序遍历;
2. 有序表r的类型定义:
#define MAXSIZE 100 /*有序表中元素的最大个数*/
typedef struct list
{ KeyType key;
InfoType OtherInfo;
}RecordType;
typedef struct {
RecordType r[MAXSIZE+1]; /* 0位空置不用*/
int length; /*有序表中元素的实际个数*/
}SeqTable;
下列算法利用二分查找方法在有序表t中插入元素x,并保持表t的有序性。请在空缺处填入合适的语句,使其成为一个完整的算法。
void BinInsert (SeqTable t, RecordType x)
{ low = 1;
high =t.length;
while ( )
{ mid = ;
if (x.key<t.r[mid].key) high=mid-1;
else ;
}
for (i = t.length; ; i--)
t.r[i+1] = t.r[i];
;
n++;
}
3.有一个单链表L(至少有一个结点),其头结点指针为head,试给出该单链表的类C语言描述,并编写一个算法将其逆置,即将最后一个结点变成第一个结点,原来倒数第二个结点变成第二个结点。
要正确标准答案,我考试用的