[Data Structure / Algorithm] 스택 (Stack)

army246·2022년 4월 26일
0
post-thumbnail

📌 스택 (Stack)

스택한쪽 끝에서만 자료를 넣거나 뺄 수 있는 선형 구조이다.
LIFO (Last In - First Out) 순서이므로 마지막으로 들어온 값이 제일 먼저 나간다.

쉽게 이해할 수 있는 예는 감자칩이다. 순서대로 쌓인 감자칩이 스택 구조와 같다.
감자칩을 먹고 싶으면 제일 위에 있는 감자칩부터 먹기 시작하여 가장 밑에 있는 갑자칩은 가장 마지막에 먹기때문이다.

스택은 추가(Push)/ 삭제(Pop)Top이라는 스택 한쪽 끝에서만 일어난다.

  • Push : 스택 맨 위에 데이터 추가
  • Pop : 스택 맨 위에 데이터 삭제
  • isEmpty : 스택이 비어있는지 확인
  • isFull : 스택이 가득 차 있는지 확인
  • getSize : 스택에 있는 요소 수를 반환

스택 구현 방법

  • 배열(Array)
    • 장점 : 구현이 쉽다.
    • 단점 : 크기가 동적이 아니기 때문에 필요에 따라 확장/축소되지 않는다.
  • 연결 리스트(Linked List)
    • 장점 : 필요에 따라 크기가 확장/축소가 가능하다.
    • 단점 : 포인터를 위한 추가 메모리 공간이 필요하다.

스택 장점

  • 구조가 단순하기 때문에 구현이 쉽다.
  • 데이터 저장,읽기 속도가 빠르다.

스택 단점

  • 데이터 최대 사이즈를 미리 정해야 한다.
  • 저장 공간의 낭비가 발생할 수 있다.

참고
https://yoongrammer.tistory.com/45?category=956616

profile
천천히 꾸준히

0개의 댓글