队列和栈学习 队列的结构讲解队列只允许从尾部加入元素从头部删去元素是一个先进先出的数据结构它的指针指向一般是左闭右开式head指向首个数据tail指向待插入数据的位置队列的结构定义图出队操作head向后移动一个指针入队操作待插入元素插入tail指针指向的位置tail向后移动一位队列的假溢出尾指针虽然越界但是队列中数据的实际数量并没有超过队列的上限假溢出表示》因此提出了循环队列当countsize时tail指向0位置栈的结构讲解单头进单头出先进后出--方法的调用可以可此处关联栈的结构出栈top指针向下移动一位入栈top指针向上移动一位将数据插入进来代码展示这只是博主写做练习的package Stack; public class StackT implements mystackT{ /** * 注意此处栈在一开始没有数据所以top-1 */ private int top -1; private T[] element; int size 0; //创建栈 public Stack(int length){ element (T[])new Object[length]; size length; } //入栈 Override public void push(T x) { if(topsize-1){ System.out.println(栈已满); return; } element[top] x; } Override public void pop() { if(top0){ top--; }else { System.out.println(栈为空); } } Override public T top() { return element[top]; } }java中自带的//应该是双端队列即两边都可以进行数据的插入和删除package Stack; import java.util.ArrayDeque; import java.util.Deque; public class test { public static void main(String[] args) { Deque deque new ArrayDeque(); //java中实现栈的最佳选择 deque.push(1); deque.push(2); deque.peek() ;//获取第一个元素 } }