2017年湖南科技大学计算机科学与工程学院826C语言程序设计与数据结构综合之数据结构考研仿真模拟题
● 摘要
一、填空题
1. 对于双向链表,在两个结点之间插入一个新结点需修改的指针共_____个,单链表为_____个。
【答案】4; 2
2. 在顺序存储的二叉树中,编号为i 和j 的两个结点处在同一层的条件是_____。 【答案】
要加“虚结点”。
设编号为
和
的结点在顺序存储中的下标为
和
。
3. 循环队列的引入,目的是为了克服_____。
【答案】假溢出时大量移动数据元素
【解析】用数组实现队列时,如果不移动,随着数据的不断读写,会出现假满队列的情况。即尾数组已满但头数组还是空的。循环队列也是一种数组,引入循环队列,有效克服假溢出大量移动数据元素的问题。
4. 设数组,
则结点
和
在同一层上的条件是 【解析】用顺序存储结构存储二叉树时,要按完全二叉树的形式存储,非完全二叉树存储时,数组中任一元素均占内存48个二进制位,从首地址2000开始连续存放在主内存里,主内存字长为16位,那么
(1)存放该数组至少需要的单元数是_____;
(2)存放数组的第8列的所有元素至少需要的单元数_____;
(3)数组按列存储时,元素
【答案】270; 27; 2204
【解析】
数组的元素个数为
需要
第8列有9个元素,共占因为每个元素占内存48个二进制位,即6个字节。故总个单元数。个字节,因此至少需要个单元数。由题知,每个元素占3个字节,因为主内存字长为16位,即2个字节,所以至少需要的起始地址是_____。
个单元。按列存储时,的起始地址为
5.
每一棵树都能唯一地转换为它所对应的二叉树。若已知一棵二叉树的前序序列是
中序序列是
前庁序列是_____。 【答案】
.
,则它的后庁序列是_____。设上述二叉树是由某棵树转换而成,则该树的
【解析】树的抑序序列对应二叉树的前序序列. 该二叉树转换成森林吋含三棵树. 其第一棵树的前序是。
6. 当线性表的元素总数基本稳定,且很少进行插入和删除操作,但要求以最快的速度存取线性表中的元素时,应采用_____存储结构。
【答案】顺序
【解析】顺序存储结构的存取操作比较方便,但插入和删除操作不如链式存储结构方便,而且需要连续的存储空间,由于该线性表的元素总数基本稳定,而且很少进行插入删除操作,为了更快的存取元素,顺序表更合适。
7. 对于一个具有n 个结点的单链表,在已知的结点半p 后插入一个新结点的时间. 复杂度为_____,在给定值为x 的结点后插入一个新结点的时间复杂度为_____。 【答案】
【解析】第一种情况只需直接修改指针的指向。第二种情况必须从头结点遍历找到x 的结点。
8. 顺序栈用存储数据,栈顶指针是top ,则值为x 的元素入栈的操作是_____。 【答案】
【解析】先判断栈是否满,如果不满,元素入栈。否则返回溢出信息。
9. 有向图G=(V ,E ), 其中V (G )=[0, 1,2,3,4, 5}, 用三元组表示弧及弧上的权d 。 E (G )为 E (G= {<0,5, 100>, <0,2,10>, <1,2,5>,<0,4, 30>,<4, 5, 60>,<3,5, 10>,<2. 3,50>, <4, 3, 20>},则从源点0到顶点3的最短路径长度是_____,经过的中间顶点是_____。
【答案】50; 4
10.以下是用类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:
二、选择题
11.下列关于虚拟存储的叙述中,正确的是( )。
A. 虚拟存储只能基于连续分配技术
B. 虚拟存储只能基于非连续分配技术
C. 虚拟存储容量只受外存容量的限制
D. 虚拟存储容量只受内存容量的限制
【答案】D 。
【解析】所谓虚拟存储,是指运行的进程不必全部装入内存,只需要部分装入便可以开始运行的一种技术,在运行过程中,当所需要的代码部分不在内存时,通过一种技术(例如缺页中断
,技术)将所需要的页面调入内存,从而继续运行。虚拟存储可以在较少的内存中运行较大的程序。但是需要有较大的外存以及相应的软、硬件 机制配合才能实现。虚拟存储器可以连续分配也可以非连续分配,虚拟存储器和外存大小没有关系,所以选项中 的A ,B ,C 都是错误的,所以答案是D 项。
12.若平衡二叉树的高度为6, 且所有非叶结点的平衡因子均为1,则该平衡二叉树的结点总数为( )。
A.12
B.20
C.32
D.33
【答案】B 。
【解析】本题题目的实际问题是,具有6层结点的平衡二叉树含有最少的结点数是多少。表示深度为h 的平衡二叉树中含有的最少结点数,有
由此可得对应的平衡二叉树如下图所示。
相关内容
相关标签