자바 스 택 의 두 가지 실현 방법
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 유형 으로 정의 합 니 다. 만약 에 여러분 이 더 좋 은 방법 이 있다 면 서로 향상 시 키 고 싶 습 니 다. 여 기 는 제 개인 적 인 생각 만 나타 내 는 것 입 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
정수 반전Udemy 에서 공부 한 것을 중얼거린다 Chapter3【Integer Reversal】 (예) 문자열로 숫자를 반전 (toString, split, reverse, join) 인수의 수치 (n)가 0보다 위 또는 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.