stack
种子选手席同学
这个作者很懒,什么都没留下…
展开
-
Java中的Vector和 Stack
(01) Stack实际上也是通过数组去实现的。执行push时(即,将元素推入栈中),是通过将元素追加的数组的末尾中。执行peek时(即,取出栈顶元素,不执行删除),是返回数组末尾的元素。执行pop时(即,取出栈顶元素,并将该元素从栈中删除),是取出数组末尾的元素,然后将该元素从数组中删除。(02) Stack继承于Vector,意味着Vector拥有的属性和功能,Stack都拥有。...原创 2018-12-14 20:47:36 · 951 阅读 · 0 评论 -
[剑指offer] 用两个栈实现队列
题目描述用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。解题思路两个栈 stack1 和 stack2:push 动作都在 stack1 中进行,pop 动作在 stack2 中进行。当 stack2 不为空时,直接 pop,当 stack2 为空时,先把 stack1 中的元素 pop 出来,push 到 stack2 中,再从 stack2 中 p...原创 2019-02-28 20:59:35 · 77 阅读 · 0 评论 -
[剑指offer] 二叉搜索树与双向链表
题目描述输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。解题思路题目可能比较难理解,可以看如下的图,我们有一棵二叉搜索树,要求得右边的双向链表。在二叉搜索树中,左子结点的值总是小于父结点的值,右子节点的值总是大于父结点的值。因此我们在转换成排序双向链表时,原先指向左子结点的指针调整为链表中指向前一个结点的指针,原先指向右子...原创 2019-03-04 22:16:32 · 118 阅读 · 0 评论 -
[剑指offer] 链表中倒数第k个结点
题目描述输入一个链表,输出该链表中倒数第k个结点。解题思路经典的双指针法。定义两个指针,第一个指针从链表的头指针开始遍历向前走k-1步,第二个指针保持不动,从第k步开始,第二个指针也开始从链表的头指针开始遍历,由于两个指针的距离保持在k-1,当第一个指针到达链表的尾节点时,第二个指针刚好指向倒数第k个节点。关注要点链表头指针是否为空,若为空则直接返回回nullk是否为0,k为0也就...原创 2019-03-02 15:43:35 · 141 阅读 · 0 评论 -
[剑指offer] 包含min函数的栈
题目描述定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。解题思路用一个栈stack保存数据,用另外一个栈temp保存依次入栈最小的数比如,stack中依次入栈5, 3, 4, 10, 2, 12, 1, 8则temp依次入栈5, 3, 3,3, 2, 2, 1, 1每次入栈的时候,如果入栈的元素比min中的栈顶元素小或等于则入栈,否则用最小元素入栈。参考代码...原创 2019-03-02 20:21:46 · 97 阅读 · 0 评论 -
[剑指offer] 栈的压入、弹出序列
题目描述输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)解题思路模拟堆栈操作的过程,将原数列依次压栈,把栈顶元素与所给出栈队列相比,如果相同则出...原创 2019-03-03 21:04:34 · 82 阅读 · 0 评论 -
java 栈的isEmpty()和empty()有什么区别
public synchronized boolean isEmpty() { return elementCount == 0;}public synchronized int size() { return elementCount;}public boolean empty() { return size() == 0; }//所...转载 2019-03-03 21:44:48 · 2341 阅读 · 0 评论