Java/개념정리

[Java] Stack

통통푸딩 2021. 9. 23. 21:57
반응형

자바로 stack을 직접 구현해봤다.

스택은 자료구조로, LIFO(Last-in, First-out)의 특성을 가지고 있다.

출처 : https://velog.io/@sbinha/%EC%8A%A4%ED%83%9D-%ED%81%90

 

 

 

Stack.class

package stack;

public class Stack {
  private int[] arr;
  private int length;

  public Stack() {
    this.arr = new int[100];
    length = 0;
  }

  public int getLength() {
    return length;
  }

  public void setLength(int length) {
    this.length = length;
    if(length<0) this.length = 0;
  }

  public boolean isEmpty(){
    return length == 0;
  }

  public void push(int data){
    arr[length] = data;
    setLength(length+1);
  }

  public int pop(){
    if(isEmpty()) throw new NullPointerException();
    setLength(length-1);
    return arr[length];
  }
}

 

 

 

Main.class

package stack;

public class Main {
  public static void main(String[] args) {
    Stack stack = new Stack();
    stack.push(5);
    stack.pop();

    stack.push(5);
    stack.push(2);

    stack.pop();

    stack.push(7);
    stack.push(10);
    stack.push(11);

    stack.pop();

    while(!stack.isEmpty()){
      System.out.println(stack.pop());
    }
  }
}

 

 

결과는 다음과 같다.

반응형