![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
左神程序员代码面试指南学习
dlz456
这个作者很懒,什么都没留下…
展开
-
用一个栈实现另一个栈的排序
解答将要排序的栈记为stack,另一个栈为help,将stack的栈顶元素弹出,和help栈顶元素比较,stack的栈顶元素小于等于help栈顶元素就把stack的栈顶元素放到heip栈中去,否则就把help的元素一个个的弹出来,一个个的放到stack栈中。经过了上述操作,此时help栈中的元素顺序就是从顶到底按小到大排序。最后只需要把help栈中的元素一个个的放到stack栈中就可以了。题目一个栈中元素的类型为整数,现在想将该栈从顶到底按从大到小的顺序排序,只允许申请一个栈。...原创 2022-07-24 15:47:58 · 324 阅读 · 0 评论 -
如何仅用递归函数和栈操作逆序一个栈
如上图,将左边的栈通过逆序转换为右边的栈,右边的栈最下面是3,因此最先要把3压进去,也就说明在从左边的栈中提取元素时,要最后提取到三,因此就说明是从栈底元素开始到栈顶元素依次进行遍历。但是对于左边来说,3在栈顶,1在栈底,和我们想要的顺序不同,因此这里还需要写一个递归。题目一个栈依次压入1,2,3,4,5,那么从栈顶到栈底分别为5,4,3,2,1。将这个栈转置后,从栈顶到栈底为1,2,3,4,5,也就是实现栈中元素的逆序,但是只能用递归函数来实现,不能用其他数据结构。...原创 2022-07-23 14:48:46 · 237 阅读 · 0 评论 -
由两个栈组成的队列
但是要注意,必须等到所有的元素完全进入一个栈的时候,才可以对另一个栈进行操作,使其里面的元素顺序和第一个栈相反。并且如果第二个栈不为空的话,是不能对其进行操作的。解答栈是先进先出,队列是先进后出。用两个栈来实现的话,必须要求一个栈里面的所有数的顺序的另一个栈的倒序。这样一个栈只负责压入,另一个栈只负责弹出。上述代码中,栈使用的empty()和isempty()两个函数是没有区别的。也就是再判断栈空的时候,使用两个函数均可。题目编写一个类,用两个栈实现队列,支持队列的基本操作。...原创 2022-07-23 11:41:39 · 134 阅读 · 0 评论 -
设计一个有getMin功能的栈
将当前的数num放到stackData栈的时候,判断stackMin栈是否为空,如果为空,就将当前数num也放到stackMin中,如果不为空,就判断stackMin栈顶元素和num的大小,如果num原创 2022-07-23 10:42:47 · 243 阅读 · 0 评论