工学

问答题利用两个栈S1和S2模拟一个队列,如何利用栈的运算实现队列的插入和删除操作,请简述算法思想。

题目
问答题
利用两个栈S1和S2模拟一个队列,如何利用栈的运算实现队列的插入和删除操作,请简述算法思想。
如果没有搜索结果,请直接 联系老师 获取答案。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

线性表、栈和队列都是线性结构,可以性表的______位置插入和删除元素;而对栈只能在______插入和删除元素;对于队列只能在______插入和在______删除元素。


正确答案:任何栈顶队尾队首
任何,栈顶,队尾,队首

第2题:

下面关于栈和队列的叙述,错误的是( )。

A.栈和队列都是操作受限的线性表

B.队列采用单循环链表存储时,只需设置队尾指针就可使入队和出队操作的时间复杂度都为O(1)

C.若队列的数据规模n可以确定,则采用顺序存储结构比链式存储结构效率更高

D.利用两个栈可以模拟一个队列的操作,反之亦可


正确答案:D
解析:栈和队列都是操作受限的线性表:栈仅在表尾插入和删除元素,队列仅在表头删除元素、在表尾插人元素。入队时初始队列为空,出队后队列变为空要进行特殊处理。入队操作和出队操作均与队列长度无关,因此其时间复杂度都为O(1)。队列是先入先出的线性表,栈是后进先出的线性表。一个线性序列经过队列结构后只能得到与原序列相同的元素序列,而经过一个栈结构后则可以得到多种元素序列。用两个栈可以模拟一个队列的人队和出队操作。

第3题:

(9)下列关于栈和队列的叙述中,正确的是( )。

Ⅰ.栈和队列都是线性表

Ⅱ.栈和队列都不能为空

Ⅲ.栈和队列都能应用于递归过程实现

Ⅳ.栈的操作原则是后进先出,而队列的操作原则是先进先出

Ⅴ.栈采用顺序方式存储,而队列采用链接方式存储

A)仅Ⅰ和Ⅳ

B)仅Ⅰ、Ⅱ和Ⅳ

C)仅Ⅱ、Ⅲ和Ⅴ

D)仅Ⅰ、Ⅳ和Ⅴ


正确答案:A

(9)【答案】A)
【解析】栈和队列可以为空。栈和队列都有顺序和链式两种存储方式。

第4题:

()、栈和队列都是()结构,可以在线性表的()位置插入和删除元素,而栈只能在()插入和删除元素;对于队列只能在()插入元素,在()删除元素。


正确答案:线性表;线性;任意;栈顶;队尾;队头

第5题:

下列关于栈和队列的叙述中,哪些是正确的?

Ⅰ.栈和队列都是线性表

Ⅱ.栈和队列都不能为空

Ⅲ.栈和队列都能应用于递归过程实现

Ⅳ.栈的操作原则是后进先出,而队列的操作原则是先进先出

Ⅴ.栈采用顺序方式存储,而队列采用链接方式存储

A.仅Ⅰ和Ⅳ

B.仅Ⅰ、Ⅱ和Ⅳ

C.仅Ⅱ、Ⅲ和Ⅴ

D.仅Ⅰ、Ⅳ和Ⅴ


正确答案:A
解析:栈和队列可以为空。栈和队列都有顺序和链式两种存储方式。

第6题:

下列关于线性表、栈和队列的叙述,错误的是( )。

A)线性表是给定的n(n必须大于零)个元素组成的序列

B)队列允许在其中的任何位置进行插入和删除操作

C)栈只允许在一端进行插入和删除操作

D)队列允许在一端进行插入在另一端进行删除


正确答案:B
栈和队列都是特殊的线性表。对于栈来说,只能在一端进行插入和删除(先进后出);而队列则只能在一端插入、在另一端删除(先进先出)。

第7题:

用两个栈实现一个队列的功能?要求给出算法和思路!


正确答案:
设2个栈为A,B, 一开始均为空.

入队:
将新元素push入栈A;

出队:
(1)判断栈B是否为空;
(2)如果不为空,则将栈A中所有元素依次pop出并push到栈B;
(3)将栈B的栈顶元素pop出;

第8题:

● 栈和队列都是线性的数据结构。以下关于栈和队列的叙述中,正确的是 (37) 。

(37)A. 栈适合采用数组存储,队列适合采用循环单链表存储

B. 栈适合采用单链表存储,队列适合采用数组存储

C. 栈和队列都不允许在元素序列的中间插入和删除元素

D. 若进入栈的元素序列确定,则从栈中出来的序列也同时确定


答案:B

顺序表示的栈和队列,必须预先分配空间,并且空间大小受限,使用起来限制比较多。而且,由于限定存取位置,顺序表示的随机存取的优点就没有了,所以,链式结构应该是首选。

 

第9题:

插入和删除只能在一端进行线性表,称为()。

A.队列

B.循环队列

C.栈

D.循环栈


正确答案:C

第10题:

无论对于顺序存储还是链式存储的栈和队列来说,进行插入或删除运算的时间复杂度均相同为()


正确答案:O(1)

更多相关问题