1
0
mirror of https://github.com/Didnelpsun/CS408.git synced 2026-02-14 08:06:03 +08:00
Files
CS408/Data-Structrue/2-stack-ex.md
Didnelpsun 74939da6df 更新栈
2021-09-16 16:48:37 +08:00

46 lines
1.5 KiB
Markdown

# 栈习题
## 概念
**例题** 栈和队列具有相同的()。
$A.$抽象数据类型
$B.$逻辑结构
$C.$存储结构
$D.$运算
解:$B$。栈和队列的逻辑结构都是相同的,都属于线性结构,只是它们对数据的运算不同。
## 结构选择
**例题** 设链表不带头结点且所有操作均在表头进行,则下列最不适合作为链栈的是()。
$A.$只有表头结点指针,没有表尾指针的双向循环链表
$B.$只有表尾结点指针,没有表头指针的双向循环链表
$C.$只有表头结点指针,没有表尾指针的单向循环链表
$D.$只有表尾结点指针,没有表头指针的单向循环链表
解:$C$。对于双向循环链表,不管是表头指针还是表尾指针,都可以很方便地找到表头结点,方便在表头做插入或删除操作。而单循环链表通过尾指针的$next$指针可以很方便地找到表头结点,但通过头指针指向的就是头,对于头的操作则需要遍历一次链表到表尾。对于$C$,插入和删除结点后,找尾结点需要花费$O(n)$的时间。
## 出栈排列
如果有$n$个不同的元素进栈,出栈元素不同排列的个数为$\dfrac{1}{n+1}C_{2n}^n=\dfrac{1}{n+1}\dfrac{(2n)!}{n!\times n!}$,这就是卡特兰数。
**例题** $3$个不同元素依次进栈,能得到()种不同的出栈序列。
$A.4$
$B.5$
$C.6$
$D.7$
解:$B$。根据公式可得$\dfrac{6\times5\times4}{4\times3\times2\times1}=5$。