线性表,栈,队列和排序考试

这是一场关于数据结构与算法的考试,重点考察了线性表、栈、队列和排序算法的知识。题目涵盖稳定排序算法、堆、环形队列的元素计数、链式存储结构的特点、快速排序、链表操作以及不同排序算法的时间复杂度和空间需求。

1. 下列哪种排序算法是不稳定的算法()(多选)

A 归并排序    B 插入排序     C 堆排序     D 快速排序

2. 下列关键字序列为堆的是()

A 100,60,70,50,32,65                     B 60,70,65,50,32,100                     C 65,100,70,32,50,60 

D 70,65,100,32,50,60                     E 32,50,100,70,65,60                     F 50,100,70,65,60,32

3. 有一个用数组C[1...m]表示的环形队列,m为数组的长度。假设f为队头元素在数组中的位置,r为队尾元素的后一位置(按顺时针方向)。若队列非空,则计算队列中元素个数的公式应为()

A(m+r-f)mod m              B r-f                        C (m-r+f) mod m

D (m-r-f) mod m                 E (r-f) mod m          F 需要判断边界

4. 以下关于链式存储结构说法错误的是()

A 查找节点时链式存储比顺序存储快               B 每个节点是由数据域和指针域组成

C 比顺序存储结构的存储密度小                      D 逻辑上不相邻的节点物理上可能相邻

5. 输入序列ABCABC经过栈操作变成ABCCBA, 下面哪些是可能的栈操作()(多选)

A push pop push pop push pop push push push pop pop pop

B push push push push push push pop pop pop pop pop pop

C push push push pop pop pop push push pop pop push pop

D push push push push pop push pop push pop pop pop pop

6. 链表要求元素的存储地址()

A 必须连续           B 部分连续            C 必须不连续             D 连续与否均可

7. 下列排序算法中,哪些时间复杂度一定不会超过nlogn的是()(多选)

A 快速排序           B 堆排序             C 归并排序            D 冒泡排序

8. 以下哪种排序算法需要开辟额外的存储空间()

A 选择排序          B 归并排序          C 快速排序            D 堆排序

9. 对有序数组{2,11,15,19,30,32,61,72,88,90,96}进行二分查找,则成功找到15需比较()次

A 2                         B 3                         C 4                              D 5

10. 把数据结构从逻辑上分为()两大类

A 顺序结构、链式结构                             B 静态结构、动态结构

C 初等结构、构造型结构                         D 线性结构、非线性结构

11.已知数组{46, 36, 65, 97, 76, 15, 29},以46为关键字进行一趟快速排序后,结果为()

A 29,36,15,46,76,97,65                         B 29,15,36,46,76,97,65

C 29,36,15,46,97,76,65                         D 15,29,36,46,97,76,65

12. 线性表如果要频繁的执行插入和删除操作,该线性表采取的存储结构应该是()

A 散列                            B 顺序                           C 链式                           D索引

13. 一个包含n个节点的四叉树,每个节点都有四个指向孩子节点的指针,这4n个指针中有()个空指针

A n                     B n + 1                    C 3n                      D 3n + 1

14. 以链接方式存储的线性表(X1,  X2,  ...,  Xn),当访问第 i 个元素的时间复杂度为()

A O(1)                     B O(n)                     C O(logn)                          D O(n^2)

15. 从表中任意一个节点出发可以依次访问到表中其他所有结点的结构是()

A 线性单链表          B 双向链表           C 循环链表                D 线性链表

16. 采用顺序存储的栈,执行入栈运算,栈顶指针的变化是()

A top++                   B top--                    C 不变                       D(top++)++

17. 输入若已经是排好序的,下列排序算法最快的是()

A 插入排序                B shell排序                   C 合并排序                   D 快速排序

18. 在一个单链表中,q的前一个节点为p, 删除q所指向结点,则正确的代码为()

A q->next = p->next; delete p;                             B p->next = q->next; delete p;

C p->next = q->next; delete q;                             D q->next = p->next; delete q

19. 有字符序列{Q,H,C,Y,P,A,M,S,R,D,F,X},新序列{F,H,C,D,P,A,M,Q,R,S,Y,X},是下列()排序算法一趟扫描的结果。

A 二路归并排序              B 快速排序                 C 步长为4的希尔排序                 D 冒泡排序

20. 下列排序算法中,对一个list排序的最快方法是()

A 快速排序                    B 冒泡排序                    C 二分插入排序                       D 线性排序

21. 在一个单链表中,p是一个指针,若p所指节点不是最后节点,在p之后插入s所指节点,则执行()

A s->link = p; p->link = s;                            B s->link = p->link; p->link = s;

C s->link = p->link; p = s;                            D p->link = s; s->link = p

22. 设单循环链表中的节点的结构为(data, link), 且rear是指向非空的带表头结点的单循环链表的尾结点的指针,若想删除链表的第一个结点,则应执行()

A s = rear; rear = rear->linkk; delete s;                    B rear = rear->link; delete rear;

C rear = rear->link->link; delete rear;                      D s = rear->link->link; rear->link->link = s->link; delete s;

23. 设指针变量p指向双向链表中结点A, 指针变量s指向被插入的结点X, 则在结点A的后面插入结点X的操作序列为()

A p->right = s; s->left = p; p->right->left = s; s->right = p->right;

B s->left = p; s->right = p->right; p->right = s; p->right->left = s;

C p->right = s; p->right->left = s; s->left = p; s->right = p->right;

D s->left = p; s->right = p->right; p->right->left = s; p->right = s;

24. 设一条单链表的头指针变量为head且该链表没有头结点,则其判空条件是()

A head == 0                  B head->next == 0                 C head->next == head                     D head != 0

25. 个数约为50K的数列需要进行从小到大排序,数列特征是基本逆序(多数数字从大到小,个别乱序),以下哪种排序算法在事先不了解数列特征的情况下性能大概率最优(不考虑空间限制)()

A 冒泡排序                   B 改进的冒泡排序                C 选择排序                    

D 快速排序                   E 堆排序                               F 插入排序

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值