栈和队列严格意义上来说也属于线性表,因为它们也都用于存储逻辑关系为 “一对一” 的数据,其中栈为先进后出,队列为先进先出。其代码如下:
public class myStack{
private int[]elements;
public myStack(){
elements=new int[0];
}
public void push(int element){
//进栈
int[]newArray=new int[elements.length+1]; //末尾添加
for(int i=0;i<elements.length;i++){
newArray[i]=elements[i];
}
newArray[elements.length]=element;
elements=newArray;
}
public void pop(){
//出栈
int element=elements[elements.length-1];
int[]newArray=new int[elements.length-1];
for(int i=0;i<newArray.length;i++){
newArray[i]=elements[i];
}
elements=newArray;
return element;
}
public boolean isEmpty(){
return elements.length==0;
}
}
public class myQueue{
private int[]elements;
public myQueue(){
elements=new int[0];
}
public void enqueue(int element){
//入队
int[]newArray=new int[elements.length+1]; //末尾添加
for(int i=0;i<elements.length;i++){
newArray[i]=elements[i];
}
newArray[elements.length]=element;
elements=newArray;
}
public void dequeue(){
//出队
int element=elements[0];
int[]newArray=new int[elements.length-1];
for(int i=0;i<newArray.length;i++){
newArray[i]=elements[i+1];
}
elements=newArray;
}
}