数据结构-栈错题集锦

1.栈和队列具有相同的(    )。
A.抽象数据类型     B.逻辑结构     C.存储结构     D.运算

1.    B
线性表、栈和队列的逻辑结构都是相同的,都属于线性结构,只是它们对数据的运算不同,从而表现出不同的特点。

2.栈是()。
A.顺序存储的线性结构     B.链式存储的非线性结构
C.限制存取点的线性结构     D.限制存储点的非线性结构

2.    C
首先栈是一种线性表,所以B、D错。按存储结构的不同可分为顺序栈和链栈,但不可以把栈局限在某种存储结构上,所以A错。栈和队列都是限制存取点的线性结构。

7.设链表不带头结点且所有操作均在表头进行,则下列最不适合作为链栈的是(    )。
A.只有表头结点指针,没有表尾指针的双向循环链表
B.只有表尾结点指针,没有表头指针的双向循环链表
C.只有表头结点指针,没有表尾指针的单向循环链表
D.只有表尾结点指针,没有表头指针的单向循环链表

7.    C
通常栈的插入和删除在表头进行。对于选项C,插入和删除一个结点后,仍需将其变为循环单链表,因此需要找到其尾结点,时间复杂度为o(n)。

若不做题干中的限制,则栈顶可取表头(带头结点的链表)或第二个结点(不带头结点的链表),找指针的位置取头结点(带头结点的链表)或表头(不带头结点的链表)。

8.向一个栈顶指针为top的链栈中插入一个x结点,则执行(    )。

A. top->next=x      B. x->next=top->next; top->next=x
C. x->next=top; top=x      D. x->next=top, top=top->next

8.    C
链栈釆用不带头结点的单链表表示时,进栈橾作在首部插入一个结点x(即x->next=top),插入完后需将top指向该插入的结点X。请思考当链栈存在头结点时的情况。

10.经过以下栈的操作后,变量x的值为(    )。
InitStack(st); Push(st, a); Push(st, b); Pop(st, x); Top(st,x);

10.    A
执行前3句后,栈st内的值为a,b,其中b为栈顶元素,执行第4句后,x的值为b,执行最后一句后x的值为a。

11.    3个不同元素依次进栈,能得到( )种不同的出栈序列。
A. 4    B. 5    C. 6    D. 7

11.  B
对于n个不同元素进栈,出栈序列的个数为

上述的公式叫做卡特兰(Catalan)数,可釆用数学归纳法证明,有兴趣的读者可以参考组合数学的教材(知道该公式即可)。考题中给出的n值不会很大,可以根据栈的特点,若Xi已经出栈,则Xi前面的尚未出栈的元素一定逆置有序地出栈,因此可以釆取例举的方法。如a、b、c依次进栈的出栈序列有abc,acb, bac, bca, cba。

时间: 2024-10-22 05:09:24

数据结构-栈错题集锦的相关文章

数据结构-线性表错题集锦

4.下列关于线性表说法正确的是(    ).Ⅰ.顺序存储方式只能用于存储线性结构Ⅱ.取线性表的第i个元素的时间同i的大小有关Ⅲ.静态链表需要分配较大的连续空间,插入和删除不需要移动元素Ⅳ.在一个长度为n的有序单链表中插入一个新结点并仍保持有序的时间复杂度为O(n)Ⅴ.若用单链表来表示队列,则应该选用带尾指针的循环链表 A. Ⅰ.Ⅱ        B.Ⅰ.Ⅲ.Ⅳ.Ⅴ    C. Ⅳ.Ⅴ       D. Ⅲ.Ⅳ.Ⅴ 4.    D顺序存储方式同样适合图和树的存储,如满二叉树的顺序存储,Ⅰ错误.若线

数据结构——二叉树错题集

2-11 任何一棵二叉树的叶结点在先序.中序和后序遍历序列中的相对次序 遍历顺序 ,令所有遍历中的 根==NULL 遍历顺序都是 左右,即左节点先于右节点,不会改变顺序: 2-xx 先序序列遍历为 a b c d 的二叉树有多少个? 14 运用卡特兰算式 , n = 4 ,ans = C(n,2*n)/(n+1) = 14 1-5: 若一个结点是某二叉树的中序遍历序列的最后一个结点,则它必是该树的前序遍历序列中的最后一个结点. 错误: 特例: A-B-C 一条线上,C是根节点: 中序遍历:ABC

数据结构王道错题集答案

原文地址:https://www.cnblogs.com/0123wtdd/p/10855750.html

数据结构——栈和队列相关算法实现

数据结构栈和队列的基本算法实现 限定性线性表--栈 栈的定义 栈作为一种限定性的线性表,是将线性表的插入和删除操作限制为仅在表的一端进行. 基本算法演示 /* 栈的常见操作: 1.初始化栈 2.元素进栈 3.元素出栈 4.栈的遍历 5.判断栈是否为空栈 6.清空整个栈 */ # include <stdio.h> # include <stdlib.h> typedef struct Node { int date; struct Node * pNext; }NODE,* PNO

poj 2082 Terrible Sets (数据结构 ——栈 STL)

 Terrible Sets Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 2999   Accepted: 1549 Description Let N be the set of all natural numbers {0 , 1 , 2 , . . . }, and R be the set of all real numbers. wi, hi for i = 1 . . . n are some elem

Web前端错题模糊题记录

title: Web前端错题模糊题记录 toc: true date: 2018-09-20 10:04:36 categories: Web tags: HTML CSS JavaScript HTML 元素的alt和title有什么异同? alt和title同时设置的时候,alt作为图片的替代文字出现,title是图片的解释文字. 关于html5标签? <audio> 标签定义声音,比如音乐或其他音频流. <canvas> 标签定义图形,比如图表和其他图像.<canvas

南阳OJ-2 括号配对 (数据结构-栈的应用)

括号配对问题 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描述 现在,有一行括号序列,请你检查这行括号是否配对. 输入 第一行输入一个数N(0<N<=100),表示有N组测试数据.后面的N行输入多组输入数据,每组输入数据都是一个字符串S(S的长度小于10000,且S不是空串),测试数据组数少于5组.数据保证S中只含有"[","]","(",")"四种字符 输出 每组输入数据的输出占一行,

node学习错题集

1.请求路径/favicon.ico 问题:node http.createServer()创建服务器,用户请求一次,但是服务器显示两次请求:一次为用户请求,一次请求路径为/favicon.ico ?? 代码如下: var http = require('http'); http.createServer(function(req,res){ console.log( req.url ); }).listen(8080);console.log("The server is on ...&quo

数据结构——栈——寻找下一个较大元素

题目描述 给出一个数组,向右寻找每一个元素的下一个较大的元素,没有更大的则为-1 举例 {4,6,1,3,2,5} 则求得的答案应为 {6,-1,3,5,5,-1} 题目分析 首先对于这样的题目,我们总是先想到最简单的,那么就是枚举,每次循环一个元素,不停的向右找就可以了.时间复杂度应该是n^2 但是这样肯定是不够用的. 然后我们考虑,这道题我们实际上遇到的问题是什么? 其实简单的说,这道题的意思是,在变化的数组中找到下一个较大的值. 难点在于,数组元素的变化,以及不是找最大值,而是找下一个较大