数据结构考试题库及答案,数据结构试题库

数据结构考试题库及答案,数据结构试题库

学习IT技术最多的是习题。 理论和实践相结合,这样学习是有效的。 接下来是华清的美女学霸。 在一次测试中,总结了常见的数据结构问题,比较常见哦。 可以收藏学习。

1 .选择题(共20题,1~10题每题2分,11~20题每题3分) )。

1 .数据结构(通常是数据的) )以及运算。

a .物理结构和逻辑结构b .存储和抽象c .理想和抽象d .理想和逻辑

2 .在数据结构中,逻辑上可以将数据结构分为()。

a .动态和静态结构b .紧凑结构和非紧凑结构

d .内部和外部结构

c .线性和非线性结构

3.f(n )=3n2 2n 1时,f ) n )=)。

B.O(N ) C.O ) 2N ) D.O ) 3N2) )。

a.o(N2 ) )。

4 .使用单链表保存的线性表,每个保存的节点需要两个域。 一个是数据域,另一个是(

请参阅。

a .当前节点的所在地址b .后续节点的所在地址

c .空指针域d .空闲域

5 .假设线性链表的节点结构为( data,next ),则已知指针q指向的节点是指针节点p的直接前驱体,如果要在*q和*p之间插入节点*s,则需要执行) )操作

A. s-next=p-next; p-next=s;

B. q-next=s; s-next=p;

C. p-next=s-next; s-next=p;

6 .将线性链表节点结构作为( data,next ),已知指针p指向的节点不是末尾节点,在*p后插入节点) s时)应执行操作。

A. s-next=p; p-next=s;

B. s-next=p-next; p-next=s;

C. s-next=p-next; p=s;

7 .将线性链表节点的构造作为( data,next ),想删除节点p的直接后继时) )应该执行操作。

A. p-next=p-next-next;

B. p=p-next; p-next=p-next-next; C. p-next=p-next;

D. p=p-next-next;

8 .当p指向具有线性链表的节点时,在线性链表末尾插入节点s的语句顺序为()。

a.while(p-next!=null(p=p-next; p-next=s; s-next=NULL;

b.while(p!=null(p=p-next; p-next=s; s-next=NULL;

c.while(p-next!=null(p=p-next; s-next=p; p-next=NULL;

d.while(p!=null(p=p-next-next; p-next=s; s-next=p-next;

9 .如果一个栈的输入序列是a、b、c、d、e,则不能输出序列的是()。

10 .如果将链表作为堆栈的存储结构,则堆栈操作时()。

11 .如果将链表作为堆栈的存储结构,则堆栈操作时()。

12 .访问队列中数据的原则是()。

a .先进先出b .后进先出c .先进后出d .随意出入

13 .堆栈和队列的共同点是()。

14 .确定一个队列sp为空的条件是()。

a.sp-front==sp-rearb.sp-front==sp-rear 1c.sp-front==sp-rear-1d.sp-front==null

15 .将包含100个节点的完全二叉树从根的层次开始,按每层从左到右的顺序对节点编号,根节点的编号为1。 对于编号49的节点x右边的孩子() )。

16 .首先访问节点的左部分树,然后访问其节点,最后访问节点的右部分树,这样的扫描(

请参阅。

a .中序遍历b .后序遍历c .前序遍历d .分层遍历

17.767个节点的完全二叉树,其叶节点数为()。

18 .在深度为k的完全二叉树中,最少有几个节点(

A 2k-1-1B 2k-1C 2k-1 1D 2k-1

19 .关于二叉树的遍历算法,以下描述正确的是() )。

avoidpre_order(bitree*root )/printf )、root-data );

pre_order(root-lchild;

pre_order(root-rchild; () ) ) ) )。

bvoidin_order(bitree*root ) /中顺序in_order ) root-lchild );

in_order(root-rchild );

printf(\’%d \’,root-data ); () ) ) ) )。

cvoidpost_order(bitree*root ) /之后的post_order ) root-lchild );

printf(\’%d \’,root-data );

post_order(root-rchild ); () ) ) ) )。

dvoidin_order(bitree*root ) /中顺序printf )、root-data );

in_order(root-lchild;

in_order(root-rchild ); () ) ) ) )。

20 .假设指针变量p指向单链接列表中的节点a,并且要删除单链接列表中的节点a,则必须将指针的操作顺序更改为() )

A q=p-next; p-data=q-data; p-next=q -next; free(q;

B q=p-next; q-data=p-data; p-next=q-next; free(q;

C q=p-next; p-next=q-next; free(q;

D q=p-next; p-data=q-data; free(q;

2 .简答题(共3题,21题10分,22~23题各20分,编程问题可以忽略头文件) ) ) ) ) ) ) )。

21 .代码实现单链表的创建、头部插入、头部删除。

22 .代码实现12个节点的完全二叉树

(1)递归实现节点的创建初始化。

(2)递归方法实现树后遍历。

)3)采用顺序队列方式实现分层遍历。

23 .代码实现顺序循环队列创建、入队、出队、测长、空判、满判、打印功能。 查看更多私信【IT】嵌入式、C语言、Java、前端等学习视频!