基础算法系列 之栈和队列

栈和队列严格意义上来说也属于线性表,因为它们也都用于存储逻辑关系为 “一对一” 的数据,其中栈为先进后出,队列为先进先出。其代码如下:

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;
 	}
}
 

猜你喜欢

转载自blog.csdn.net/langxiaolin/article/details/113445177