栈
文章平均质量分 54
奶昔爆米花
道阻且长 行则将至
展开
-
栈和队列の互相实现
栈和队列的相互实现用栈实现队列基本思想代码用队列实现栈基本思想代码用栈实现队列基本思想实现两个栈:push栈、pop栈push栈:元素入栈pop栈:元素出栈入栈:元素入栈时进push栈出栈:元素出栈时,判断pop栈是否为空如果pop栈不为空,弹出pop栈顶元素如果pop栈为空,则判断push栈是否为空如果push栈为空,则没有数据可以出栈如果push栈不为空,将push栈所有元素弹出压入到pop栈,pop栈顶弹出代码import java.util.Stack;原创 2021-07-14 11:14:04 · 101 阅读 · 0 评论 -
数组实现栈&队列
数组实现栈和队列数组实现栈基本思想代码环形数组实现队列基本思想代码数组实现栈基本思想用一个指针(index)维护入栈位置及出栈位置入栈时,index++出栈时,–index即可代码public class ArrayStack { public static class MyStack{ private int[] array; private int index; public MyStack(int length){原创 2021-07-14 10:47:27 · 99 阅读 · 0 评论 -
实现栈,获取栈中最小值
实现栈,获取栈中最小值空间换时间基本思想代码复杂度分析时间换空间基本思想代码复杂度分析两种方式实现,第一种用空间换时间,第二种用时间换空间空间换时间基本思想用两个栈来实现,一个栈维护入栈数据(数据栈),一个栈维护最小值(最小栈)元素入栈时,比较入栈元素与最小栈栈顶如果最小栈栈顶元素更小,那么再次将该最小栈栈顶元素压入最小栈如果入栈元素更小,那么将入栈的元素同步压入最小栈元素出栈时,数据栈与最小栈同步出栈即可,最小栈弹出元素即为当前栈中最小值代码import java.util.原创 2021-07-13 15:06:09 · 707 阅读 · 0 评论 -
双向链表实现栈和队列
双向链表实现栈和队列栈和队列双向链表定义双向链表的节点定义双向链表双向链表从头部增加节点的方法双向链表从尾部增加节点的方法双向链表从头部删除节点的方法双向链表从尾部删除节点的方法用双向链表实现栈用双向链表实现队列栈和队列栈:先进后出队列:先进先出双向链表定义双向链表的节点//定义双向链表public static class Node<T>{ public T value; Node<T> last; Node<T> next;原创 2021-07-13 14:36:52 · 782 阅读 · 0 评论