77问答网
所有问题
利用两个栈s1和s2模拟一个队列时,如何用栈的运算来实现该队列的运算:(1)enqueue:插入一个元素
如题所述
举报该问题
其他回答
第1个回答 2008-09-10
翻书吧,这都是入门级别的练习题
第2个回答 2012-03-20
http://wenku.baidu.com/view/97d13f4ac850ad02de804175.html
最后一题
相似回答
利用两个栈
sl、
s2模拟一个队列时,如何用栈的运算实现队列的
插入、删除以...
答:
使用
两个栈
,分别依元素加入的顺序和其反序保存元素,在适当的时机将元素在两个栈中进行转移,从而
模拟队列的
操作。令S1中元素的顺序为自底向上与元素添加顺序一致,
S2
与其相反,则:加入
队列时,
若S2不空,则将S2中的元素依次出栈,每出栈一个向S1中入
栈一个
;将入队元素入
S1栈
;从队列中取出时,若...
请
利用两个栈S1和S2来模拟一个队列
。已知
栈的
三个
运算
定义如下:PUSH...
答:
假设
两个栈
A 和B,且都为空。可以认为栈 A 为提供入
队列的
功能,栈 B 提供出队列的功能。入队列: 入栈 A 出
队列:1
如果栈B 不为空,直接弹出栈 B 的数据。2 如果栈 B 为空,则依次弹出栈 A 的数据,放入栈 B 中,再弹出栈 B 的数据。
用
两个栈实现一个队列的
功能?要求给出算法和思路!
答:
在运行第一个pop时,把A中的1,2全push到B中去,然后再pop得到1,此时B中还剩
一个2
下一步push 3,是push到A中 最后一步pop,把B中的2给pop出去 关键点:(2)如果不为空,则将
栈
A中所有元素依次pop出并push到栈B;这里隐含了一点,如果为空,就直接从B中pop,不对A进行任何操作。很显然,...
数据结构(C语言),请救高手,万分感谢.
答:
//模拟出队 while(!Sempty(S2))//把S2中的元素全部导回
S1,
以保证入队的顺序 { POP(
S2,
x) ;PUSH(
S1,
x);} } //
模拟队列
判空,简单 queue_empty(stack
s2,
stack s1){ if(Sempty(S1))&&Sempty(S2))) return true; //
两个栈
都为空说明队列为空 } //具体实现就自己搞定喽 ...
C语言数据结构
:利用两个
顺序
栈来实现一个
列队的功能时遇到的问题
答:
对吧?但是,这个放置s1出栈元素的缓冲区。。。也得是
一个栈
结构吧?否则的话,你怎么知道s1向缓冲区出栈的u元素 顺序呢?这样就不是双栈模拟队列了,势必还得用到一个中间栈s3来满足你这种处理方式~因此,双
栈模拟队列时,
当
栈s1
满,
栈s2
非空时,栈s1再执行进栈操作。因为双栈是没有s3的~
用
一个
数组
实现两个栈,
尽可能
利用
存储空间,写出
两个栈的
插入、删除操作...
答:
要
2个栈
公用一个存储空间看来栈顶指针只能从两端开始了(
和队列
有点像)设2个栈为s0
,s1
,s1
初始的栈顶指针为-
1,s2的
初始栈顶指针为N typedef struct { elemtype stack[N]; //栈存储空间 int top[2]; //top为
两个栈
顶指针 }St;St s;//s为全局变量用于操作 void push(int i,elemtype ...
设有
两个栈s1和s2
共享存储空间c[
1,
m0],其中
一个栈
底设在c[1]处,另...
答:
void push(x,i)int x,i;{ if (top1==top2-1)printf(“overflow!\n”)else if (i==1){top 1++;c[top1]=x;} else } top2--;c[top2]=x;}
大家正在搜
用两个栈实现一个队列
什么时候用栈什么时候用队列
栈和队列的应用
队列实现栈
栈和队列各自的特点
栈和队列具有相同的
栈和队列的概念
栈与队列的相同点和不同点
栈和队列的特点分别是
相关问题
利用两个栈S1和S2模拟一个队列,写出入队和出队的算法,可用...
利用两个栈sl、s2模拟一个队列时,如何用栈的运算实现队列的...
利用两个栈S1和S2来模拟一个队列.若不存在栈溢出问题,则请...
向一个栈顶指针为HS的链式栈中插入一个s所指的结点时,则执行...