공부하는 블로그

Algorithm | 자료구조 : Stack 본문

알고리즘 공부

Algorithm | 자료구조 : Stack

치킨닮은닭 2020. 2. 11. 17:38

Stack?

Stack의 구조. 출처  https://blog.naver.com/coolten/140057845842

 스택(Stack)은 한 쪽 끝에서만 자료를 넣거나 뺄 수 있는 선형구조(LIFO - Last In First Out)로 되어있다. 자료를 넣는 행위를 푸시(Push), 넣어둔 자료를 꺼내는 행위를 팝(Pop)이라고 한다.

*LIFO : 나중에 넣은 값이 가장 먼저 나오는 것을 LIFO 구조라 한다.

 

 스택은 프로그래밍 언어마다 라이브러리로 구현되어 있지만 직접 사용자가 연결 리스트를 이용하여 구현해낼 수도 있다. 

 

Stack Method

· pop() : 스택에서 가장 위에 있는 데이터를 제거한다. 

· push() : 스택의 가장 위에 데이터를 추가한다.

· peek() : 스택의 가장 위에 있는 항목을 반환한다.

· isEmpty() : 스택이 비어있을 때에 true를 반환한다.

 

Stack Code (JAVA)

import java.util.ArrayList;
import java.util.List;

public class MyStack {
  public List<Object> stack = new ArrayList<Object>();

  public void push(Object obj) {
    stack.add(obj);
  }

  public Object pop() {
    if(stack.size() == 0) return 'stack is empty';
    return stack.remove(stack.size()-1);
  }

  public boolean isEmpty() {
    if(stack.size() == 0) return true;
    return false;
  }

  public Object peek() {
    if(stack.size() == 0) return 'stack is empty';
    return stack.get(stack.size()-1);
  }
}

 간단하게 자바로 구현해본 스택클래스다.

 


Reference

 

· https://ko.wikipedia.org/wiki/%EC%8A%A4%ED%83%9D

· https://gmlwjd9405.github.io/2018/08/03/data-structure-stack.html 

Comments