利用两个栈S1和S2模拟一个队列,如何利用栈的运算实现队列的插入和删除操作,请简述算法思想。
正确答案
答案解析
相似试题
(简答题)
请利用两个栈S1和S2来模拟一个队列。已知栈的三个运算定义如下:PUSH(ST,X):元素X入ST栈;POP(ST,X):ST栈顶元素出栈,赋给变量X;Sempty(ST):判ST栈空否。那么如何用栈的运算来实现该队列的三个运算:enqueue:插入一个元素入队列;dequeue:删除一个元素出队列;queue_empty:判队列为空。(请写明算法的思想及必要的注释)
(单选题)
设数组S[n]作为两个栈S1和S2的存储空间,对任何一个栈只有当S[n]全满时才不能进行进栈操作。为这两个栈分配空间的最佳方案是()。
(单选题)
若用数组S[0..n-1]作为两个栈S1和S2的共同存储结构,对任何一个栈,只有当S全满时才不能作入栈操作。为这两个栈分配空间的最佳方案是()。
(填空题)
若数组s[0..n-1]为两个栈s1和s2的共用存储空间,仅当s[0..n-1]全满时,各栈才不能进行栈操作,则为这两个栈分配空间的最佳方案是:s1和s2的栈顶指针的初值分别为()。
(填空题)
设有一个顺序栈S,元素s1,s2,s3,s4,s5,s6依次进栈,如果6个元素的出栈顺序为s2,s3,s6,s5,s1则顺序栈的容量至少应为()。
(简答题)
设计函数strcmp(s1,s2)是字符串比较,根据s1,s2大小分别返回负数(s1s2)。其中负数和正数为s1和s2中第一个不同的两个字母的差值。
(填空题)
下列函数strcmp(s1,s2)是字符串比较,根据s1,s2大小分别返回负数(s1<s2),0(s1=s2),正数(s1>s2).请将缺少部分补上。其中负数和正数为s1和s2中第一个不同的两个字母的差值。
(单选题)
设有两个串S1和S2,求串S2在S1中首次出现位置的运算称作()。
(单选题)
s1和s2是两个结构类型变量,若要使赋值s1=s2合法,则它们的说明应该是()