数据结构与算法
栈和队列的数组,链表实现
应上期内容,在这里给出栈和队列的数组,链表实现。
链表
先附上链表的代码段:
package EightWeek;
public class ListNode {
ListNode next;
Object val;
public ListNode(Object x){
val=x;
next=null;
}
public ListNode(){
}
}
栈
满足后进先出原则,至少该有:用于出栈pop(), 用于压栈push(Object x), 用于检查数目元素该出栈peek()方法。
栈——数组:
代码如下:
package EightWeek;
//通过temp==0判断是否为空,也可构建循环数组(if(temp>=arrays.length) temp=temp%arrays.length;)
public class Stack_A {
private Object arrays[];
private int temp;
public Stack_A(int size){
this.arrays=new Object [size];
this.temp=0;
}
public void clear(){
this.temp=0;}
public int length(){
return this.temp;}
public boolean isEmpty(){
return temp==0;}
public Object peek(){
return (isEmpty()) ? null : arrays[temp-1];}
public Object pop()