2017年北方民族大学计算机应用技术832C语言程序设计与数据结构之数据结构考研题库
● 摘要
一、填空题
1. 中缀式
运算结果为_____。 【答案】
【解析】中缀式相当于中序遍历,前缀式相当于前序遍历,后缀式相当于后序遍历。
2. —棵左子树为空的二叉树在前序线索化后,其中的空链域的个数为 _____。
【答案】2
【解析】只有根结点的做指针为空和最右边的叶结点的右指针为空。
3. 以下是用类C 语言写山的算法,该算法将以二叉链表存储的二叉树中的叶结点按从左到右的顺序链成一个带头结点的双向循环链表,链接时,结点的Lchild 域作为前链域,指向结点的直接前驱,结点的Rchild 域作为后链域,指向结点的直接后继。算法中,使用一个顺序栈stack , 栈顶
head 为双向循坏链表的头指针。 指针为top , P , t 为辅助指针,试填充算法中的空格,使算法完整。
void leafchain(BiTree Abt)
{p={BiTree)malloc (sizeof (BiTNode ));
If (!p ){print£(“OVERFLOW\n”; exit (1); }
head=p; top=0;
if (bt )
{top++; stack[top]=bt;
while (top )
{t=stack[top]; top--;
if (it->Lchild && !t->Rchild){ (1) ; (2) ; (3) ; }
else {if( (4) ){top++; stack[top]= (5) ; }
if ( (6) ){top++; stack[top]= (5) ; }
}
}
(8) ; (9) ; } }
【答案】
p->Rchild=t:t->Lchild=p:p=t:
p->Rchild=head:head->Lchild=p
t->Rchild!=null:t->Rchild: t->Lchild!=null: t->Lchild: 对应的前缀式为_____,若则后缀式的
4. 己知有序表为(12,18,24,35,47,50,62,83,90,115,134)当用二分法查找90时,需_____次查找成功,查找47时_____成功,查找100时,需_____次才能确定不成功。
【答案】2;4;3
【解析】二分法查找元素次数列表
查
找100是找到115就停止了。
5. 起始地址为480,大小为8的块,其伙伴块的起始地址是_____;若块大小为32,则其伙伴块的起始地址为_____。 【答案】
【解析】起始地址为P ,大小为的内存块,其伙伴块的起始地址计算公式如下:
根据上述公式起始地址就为488。
6. 在双向循环链表中,向P 所指的结点之后插入指针f 所指的结点,其操作是_____、_____、_____、_____。 【答案】
7. 设数组数组中任一元素 均占内存48个二进制位,从首地址2000开始连续存放在主内存里,主内存字长为16位,那么
(1)存放该数组至少需要的单元数是_____;
(2)存放数组的第8列的所有元素至少需要的单元数_____;
(3)数组按列存储时,元素
【答案】270; 27; 2204
【解析】数组的元素个数为
需要
第8列有9个元素,共占因为每个元素占内存48个二进制位,即6个字节。故总个单元数。个字节,因此至少需要个单元数。由题知,每个元素占3个字节,因为主内存字长为16位,即2个字节,所以至少需要的起始地址是_____。
个单元。按列存储时,的起始地址为
8. 设m 、n 均为自然数,m 可表示为一些不超过n 的自然数之和,f (m , n )为这种表示方式的
数目。例f (5, 3)=5,有5种表示方式:3+2, 3+1+1,2+2+1,2+1+1+1, 1+1+1+1+1。
①以下是该函数的程序段,请将未完成的部分填入,使之完整。
②执行程序,f (6,4)=_____。
【答案】①1; 1; f (m ,n -1); n ②9
9. 深度为H 的完全二叉树至少有_____个结点; 至多有_____个结点; H 和结点总数N 之间的关系是_____。 【答案】
10.文件可按其记录的类型不同而分成两类,即_____和_____文件。
【答案】操作系统文件;数据库
二、判断题
11.用一维数组存储二叉树时,总是以前序遍历顺序存储结点。( )
【答案】×
【解析】后序遍历、中序遍历也可以遍历一维数组存储的二叉树。
12.设尾指针的循环链表表示队列,则入队和出队算法的时间复杂度均为
【答案】
【解析】入队和出队操作分别在队尾和队头进行,设有尾指针的循环链表对头和尾元素的操 作的时间复杂度是
13.栈和队列都是限制存取点的线性结构。( ) 【答案】
14.若中序遍历平衡的二叉排序树,可得到排好序的关键码序列。( )
【答案】√
【解析】二叉排序树对于每一个结点,它的左子树的所有结点的值都小于这个结点的值,而它的右子树的所有结点的值都大于这个结点的值。而采用中序遍历,遍历顺序为左根右,因此可以得到按增序排列的关键码序列。
15.用希尔(Shell )方法排序时,若关键字的初始排序杂乱无序,则排序效率就低。( )
【答案】×
( )。
相关内容
相关标签