当前位置:问答库>考研试题

2017年辽宁石油化工大学计算机与通信工程学院951数据结构考研强化模拟题

  摘要

一、填空题

1. 中缀式运算结果为_____。

【答案】

【解析】中缀式相当于中序遍历,前缀式相当于前序遍历,后缀式相当于后序遍历。

2. 在图G 的邻接表表示中,每个顶点邻接表中所含的结点数,对于无向图来说等于该顶点的_____; 对于有向图来说等于该顶点的_____。

【答案】度;出度

3. 用循环链表表示的队列长度为n ,若只设头指针,则出队和入队的时间复杂度分别是_____和_____;若只设尾指针,则出队和入队的时间复杂度分别是_____和_____。

【答案】

【解析】队列的出队操作即删除队头的元素,队列的入队操作即在队尾添加元素,循环链表只设头指针,出队时,只要把头结点的下一个结点删除就好了,入队时,要把新的结点插入队尾,必须把队列遍历,找到队尾指针,才能插入。循环队列只设尾指针,出队时只要把为指针的下一个结点或者下下个结点删除即可,入队时,只要在尾指针的后面插入新的结点,并更新尾结点即可。

4. 在哈希函数

对应的前缀式为_____,若

则后缀式

中,P 值最好取_____。

【答案】小于等于表长的最大素数或不包含小于20的质因子的合数

【解析】在使用除留余数法时,对除数P 的选择很重要。若P 选的不好,容易产生同义词。一般情况下,可以选P 为质数或不包含小于20的质因素的合数。

5. 设二维数组A 的行和列的下标范围分别为和每个元素占2个单元,按行优先顺序存储,第一个元素的存储起始位置为b ,则存储位置为

【答案】

当其值为

处的元素为_____。

【解析】令这个元素的行标为i ,列标为j 。则它的存储位置是

时,则i=2,j=3。

6. 对n 个记录的表r[l..n]进行简单选择排序,所需进行的关键字间的比较次数为_____。

【答案】n (n-1)/2

【解析】第一次需要n-1次比较,第i 此需要n-i 此比较,所以共需要、n-l+n-2+...+l=n(n-l )

/2。

7. 设有一个空找,栈顶指针为1000H (十六进制),现有输入序列为1,2,3, 4, 5,经过PUSH ,PUSH , POP , PUSH , POP ,PUSH ,PUSH 之后,输出序列是_____,而栈顶指针值是_____。设栈为顺序栈,每个元素占4个字节。

【答案】23; 100CH

8. 在一个无向图的的邻接表中,若表结点的个数是m , 则图中边的条数是_____条。

【答案】m/2

【解析】对于无向图,在邻接表中,如果存在n 条边,则会有2n 个表结点。

9. 在循环队列中,队列长度为n ,存储位置从0到,编号,以rear 指示实际的队尾元素,现要在此队列中插入一个新元素,新元素的位置是( )。

【答案】

10.设数组储,则元素为_____。

【答案】9174;8788

【解析】设一个元素的行标为i ,列标为j 。若以行序为主存储顺序,

则它的存储地址为

若以列序为主存储顺序,则它的存储地址为

的基地址为2000,每个元素占2个存储单元,若以行序为主序顺序存

的存储地址为_____;若以列序为主序顺序存储,则元素

的存储地址

二、算法设计题

11.已知P 是指向单向循环链表最后一个结点的指针,试编写只包含一个循环的算法,

将线性表

改造为

【答案】算法如下:

12.在一棵以二叉链表表示的二叉树上,试写出按层次顺序遍历二叉树的方法,统计树中具有度为1的结点数目的算法。

【答案】算法如下:

int Level(BiTree bt) //层次遍历二叉树,并统计度为1的结点的个数 {int num=C; //num统计度为1的结点的个数

if (bt ){Queuelnit(Q ); Queueln(Q , bt ); //Q是以二叉树结点指针为元素德 队列 while (!QueueEmpty (Q ))

{p=Queueout(Q ); printf (p->data); //出队访问结点

//非空右子女入队

//返回度为1的结点的个数

13.元素集合己存入整型数组树T 的非递归算法

【答案】算法如下:

14.设求按

是一个记录构成的数组,

中,试写出依次取A 中各值

构造一棵二叉排序

是一个整数数组,其值介于1~100之间,现要

时,则要求将

的内容调整到

的内容调整A 中记录的次序,比如当

去。规定可使用的附加空间为

【答案】算法如下: