借助队列对栈中元素排序


问题描述:
栈中元素无序,借助队列将栈中元素排序
解题思路:
1.初始化三个队列,分别为q1、q2、q3
2.读取栈顶元素,并作如下操作,直到栈空,最后结果保存在q3中。
(1)如果q1队尾元素小于等于栈顶元素,则弹出栈顶元素并将其存入q1队列中,并读取栈顶元素。
(2)如果q1队尾元素大于栈顶元素,则比较q2队尾元素和栈顶元素,若q2队尾元素小于等于栈顶元素,则弹出栈顶元素,并将栈顶元素存入q2队列中,并读取栈顶元素。
(3)如果q2队尾元素大于栈顶元素,则对各自有序的队列1和队列2中的元素进行排序,结果存入队列q3中,此时,q1、q2空,然后q1和q3进行交换,并读取栈顶元素。


文章作者: irenhongyan
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 irenhongyan !
 上一篇
表达式求值算法一 表达式求值算法一
1.置操作数栈为空栈,表达式起始符“#”为栈底元素。2.依次读入表达式中的每个字符并进行如下判断,直至整个表达式读完且表达式求值运算完毕(即OPTR栈的栈顶元素和当前输入的字符均为“#”)。(1)若读入字符是操作数,则将输入字符存入数组中,
2020-05-06
下一篇 
第一次使用 第一次使用
第一次使用,记录一下,哈哈哈,以后要多记录
2020-05-05 irenhongyan