자바 스 택 의 두 가지 실현 방법

2223 단어 데이터 구조
자바 스 택 의 실현 은 두 가지 방식 이 있 습 니 다.
1. 배열 로 구현:
//       ,          
public class Stack {
    private int []data;
    private int length;//           
    private int top;//          
    private final int expandLength=20;//       
                                                                                            
    public Stack(int length){
        this.length=length;
        top=-1;//    -1
        data=new int[length];      
    }
    //  
    public void push(int value){
        if(top<length-1)
            data[++top]=value;
        else{
            //      
            int []temp=new int[length+expandLength];
            for(int i=0;i<length;i++){
                temp[i]=data[i];
            }
            data=temp;
            data[++top]=value;
        }
    }
    //  
    public int pop(){
        return data[top--];
    }
    //      
    public int peek(){
        return data[top];
    }
    //      
    public int getLength(){
        return top+1;
    }
    //      
    public boolean isfull(){
        return(top==length-1);
    }
}

2. 배열 선형 표를 사용 하여 스 택 을 실현 합 니 다.
//           ,              
import java.util.*;
public class linkedStack<T> {
    private LinkedList<T> Linkedlist;//       
                                                                              
    public linkedStack(){
        Linkedlist=new LinkedList<T>();
    }
    //  
    public void push(T value){
        Linkedlist.add(value);
    }
    //  
    public T pop(){
        T data=Linkedlist.get(getLength()-1);
        Linkedlist.remove(getLength()-1);
        return data;
    }
    //      
    public T peek(){
        return Linkedlist.get(Linkedlist.size()-1);
    }
    //    
    public int getLength(){
        return Linkedlist.size();
    }
}

개인 적 으로 저 는 두 번 째 실현 방법 을 더 좋아 합 니 다. 두 번 째 는 저장 할 데이터 유형 을 스스로 정의 할 수 있 습 니 다. 어떤 사람 은 왜 첫 번 째 방법 이 범 형 을 사용 하지 않 는 지 말 할 것 입 니 다. 저 는 해 본 적 이 있 지만 매우 번 거 로 울 것 입 니 다.먼저 범 형 이 배열 에 대한 정 의 는 원래 제한 되 어야 하기 때문에 종합 적 으로 고려 하면 저 는 첫 번 째 방법 에서 간략화 되 었 고 데이터 유형 을 int 유형 으로 정의 합 니 다. 만약 에 여러분 이 더 좋 은 방법 이 있다 면 서로 향상 시 키 고 싶 습 니 다. 여 기 는 제 개인 적 인 생각 만 나타 내 는 것 입 니 다.

좋은 웹페이지 즐겨찾기