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

2018年北方民族大学计算机应用技术832C语言程序设计与数据结构之数据结构考研核心题库

  摘要

一、填空题

1. 分别采用堆排序,快速排序,起泡排序和归并排序,对初态为有序的表,则最省时间的是_____算法,最费时间的是_____算法。

【答案】起泡;快速

【解析】当初态为有序表时,冒泡排序只需要进行一趟比较即可,此时时间复杂度为O(n),

2而快速排序算 法需要比较的次数达到最大,时间复杂度为O (n) 。

2.

=_____

【答案】5

3. 假定有k 个关键字互为同义词,若用线性探测再哈希法把这k 个关键字存入哈希表中,至少要进行_____次探测。 【答案】

【解析】当该关键字发生冲突时,用线性探测不会遇到别的关键字冲突,这个时候需要探测的次数最小。总次数为。

4. 求图的最小生成树有两种算法,_____算法适合于求稀疏图的最小生成树e

【答案】克鲁斯卡尔

【解析】克鲁斯卡尔算法是一种按权值的递增次序选择合适的边来构造最小生成树的方法,这种算法中,采用堆来存放边的集合,适合于边稀疏而顶点较多的图。

5. 在哈希函数中,p 值最好取_____。

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

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

6. 试利用下列栈和串的基本操作完成下述填空题。

initstack(S)置S 为空栈;

push(S,X) 元素X 入栈;

pop(S)出栈操作;

gettop(S)返回栈顶元素;

sempty(S)判栈空函数;

setnull(St)置串St 为空串;

length(st)返回串st 的长度;

equal(S1,S 2) 判串S 1并S 2是否相等的函数;

concat(S1,S 2) 返回联接S 1和S 2之后的串;

sub(S,i ,1) 返回S 中第i 个字符;

empty(st)判串空函数

FUNCinvert(pre:string ;V ARexp :string) :boolean ;

{若给定的表达式的前缀式pre 正确,本过程求得和它相应的表达式exp 并返回true ,否则exp 为空串,并返回false 。已知原表达式中不包含括弧,opset 为运算符的集合。

)

_____;_____;

_____THEN_____

IF_____THEN_____

(_____,_____);

(_____,_____);

_____

_____THEN

注意:每个空格只填一个语句。

【答案】(1)initstack(S)//栈s 初始化为空栈

(2)setnull(exp)//串exp 初始化为空串

(3)chinopset//判取出字符是否是操作符

(4)push(s,ch)//如ch 是运算符,则入操作符栈s

(5)sempty(s)//判栈s 是否为空

(6)succ:=false//若读出ch 是操作数且栈为空,则按出错处理

(7)exp

(8)ch//若ch 是操作数且栈非空,则形成部分中缀表达式

(9)exp

(10)gettop(s)//取栈顶操作符

(11)pop(s)//操作符取出后,出栈

(12)sempty(s)//将pre 的最后一个字符(操作数) 加入到中缀式exp 的最后

7. 对于一个具有n 个结点的单链表,在已知的结点半p 后插入一个新结点的时间. 复杂度为_____,在给定值为x 的结点后插入一个新结点的时间复杂度为_____。

【答案】O(1);O(n)

【解析】第一种情况只需直接修改指针的指向。第二种情况必须从头结点遍历找到x 的结点。

8. 一个算法具有5个特性: _____、_____、_____、有零个或多个输入、有一个或多个输出。

【答案】有穷性;确定性;可行性

9. 设二维数组A 的行和列的下标范围分别为[0:8]和[0:10],每个元素占2个单元,按行优先顺序存储,第一个元素的存储起始位置为b ,则存储位置为b+50处的元素为_____。

【答案】A[2][3]

【解析】令这个元素的行标为i ,列标为j 。则它的存储位置是(ll*i+j +l ﹣l)*2+b 。当其值为b +50时,则i =2,j =3。

10.在单链表中设置头结点的作用是_____。

【答案】方便运算

二、判断题

11.任何二叉树的后序线索树进行后序遍历时都必须用栈。( )

【答案】 ×

【解析】任何结点至多只有左子树的二叉树的遍历就不需要栈。

12.在平衡二又树中,向某个平衡因子不为零的结点的树中插入一新结点,必引起平衡旋转。( )

【答案】×

【解析】不一定,比如一个平衡因子为1的结点,这时往它的右部插入一个新结点,就不会引起平衡旋转

13.若从二叉树的任一结点出发,到根的路径上所经过的结点序列按其关键字有序,则该二叉树一定是哈夫曼树。( )

【答案】×

【解析】在含有N 个带权叶子结点的二叉树中,其中带权路径长度最小的二叉树称为哈夫曼树,也叫做最优二叉树。关键字有序,可能叶子结点部分的关键字最大,根结点的关键字部分最