嘉兴网站建设有前途吗,在成都如何找到做网站的公司,模板做网站,免费建网站流程栈#xff1a;一种特殊的线性表#xff0c;其只允许在固定的一端进行插入和删除元素操作。 先进后出 栈的使用 栈的模拟实现 上述的主要代码
public class MyStack {private int[] elem;private int usedSize;public MyStack() {this.elem new int[5];}Overridepublic …
栈一种特殊的线性表其只允许在固定的一端进行插入和删除元素操作。 先进后出 栈的使用 栈的模拟实现 上述的主要代码
public class MyStack {private int[] elem;private int usedSize;public MyStack() {this.elem new int[5];}Overridepublic String toString() {return MyStack{ elem Arrays.toString(elem) , usedSize usedSize };}//压栈public void push(int val){if(isFull()){elemArrays.copyOf(elem,2*elem.length);}elem[usedSize]val;}public boolean isFull(){return this.usedSizeelem.length;}//出栈public int pop(){if(empty()){throw new StackEmptyException(栈内元素为空);}return elem[--usedSize];}public boolean empty(){return usedSize0;}//获取栈顶元素public int peek(){if(empty()){throw new StackEmptyException(栈内元素为空);}return elem[usedSize-1];}}改变元素的序列 将递归转化为循环 比如逆序打印链表 结果如下 队列只允许在一端进行插入数据操作在另一端进行删除数据操作的特殊线性表队列具有先进先出FIFO(FirstIn First Out) 入队列进行插入操作的一端称为队尾Tail/Rear 出队列进行删除操作的一端称为队头Head/Front 队列的使用 Queue是个接口在实例化时必须实例化LinkedList的对象因为LinkedList实现了Queue接口 队列模拟实现(利用双向链表) 先考虑一般情况再考虑特殊情况 循环队列 环形队列通常使用数组实现 注意事项 代码如下 双端队列 (Deque) 双端队列deque是指允许两端都可以进行入队和出队操作的队列deque 是 “double ended queue” 的简称。那就说明元素可以从队头出队和入队也可以从队尾出队和入队。 栈和队列均可以使用该接口。 用栈实现队列