[자료구조] 스택(Stack)이란?

2022. 12. 27. 13:01·CS/자료구조(data structure)

개요


Stack 자료구조란 요소들이 후입선출(Last-In First-Out)되는 방식의 자료구조이다.

말 그대로 가장 늦게 들어온 요소가 가장 처음으로 나간다.


구조


사진 1

스택은 기본적으로 사진 1과 같은 구조를 가진다.

아래에서부터 요소가 쌓이며 Top 포인터는 가장 위에 있는 요소를 가르킨다.

 

operation으로는 대표적으로 Push와 Pop이 있다.

사진 2

Push operation은 스택에 아이템을 추가한다.

사진 2는 사진 1에서 5를 push했을 때의 예시 사진이다.

 

사진 3

Pop operation은 스택에서 아이템을 제거한다.

사진 3은 사진 2에서 5를 pop하는 예시이다.

 

사진 2와 3에서, Top 포인터가 가르키는 위치는 항상 스택의 맨 위 임을 알 수 있다.


어디에서 사용하는가?


사진 4

위 사진은 VS code에서의 괄호이다.

스택을 사용해서 괄호 매칭 문제를 해결할 수 있다.

현재 사진에서 괄호의 문자열은 { { { } } } 이다.

이제 여는 괄호는 스택에 Push하고 닫는 괄호 문자열을 만날 시 여는 괄호를 스택에서 하나씩 Pop을 하면서 괄호 매칭에 대해 알아볼 것이다.

사진 5

사진 4의 괄호들을 스택을 이용해서 표현해 보았다.

여는 괄호 문자열을 받을 시 스택에 Push하고, 닫는 괄호를 받을 시 여는 괄호 문자를 하나씩 Pop한다.

 

결과적으로 마지막에 스택이 비어있다면 괄호가 잘 맞는것이고 스택이 비어있지 않다면 괄호가 맞지 않는 것이다.

'CS > 자료구조(data structure)' 카테고리의 다른 글

[자료구조] 트리(Tree) 기본  (2) 2023.01.10
[자료구조] 스택과 큐를 이용하여 회문 판별 프로그램 만들기(C++)  (0) 2022.12.30
[자료구조] 큐(Queue)란?  (0) 2022.12.30
[자료구조] 연결리스트(Linked List)란?  (0) 2022.12.26
[자료구조] C언어 Pointer에 대하여  (2) 2022.12.25
'CS/자료구조(data structure)' 카테고리의 다른 글
  • [자료구조] 스택과 큐를 이용하여 회문 판별 프로그램 만들기(C++)
  • [자료구조] 큐(Queue)란?
  • [자료구조] 연결리스트(Linked List)란?
  • [자료구조] C언어 Pointer에 대하여
MaKa_
MaKa_
이게 왜안될까요
  • MaKa_
    벌레 잡는 사람
    MaKa_
  • 전체
    오늘
    어제
    • 공부 (45)
      • CS (18)
        • 자료구조(data structure) (7)
        • 알고리즘(Algorithm) (6)
      • React (6)
      • React Native (2)
      • Next.js (5)
      • Backend (2)
      • 이야기 (3)
        • 회고 (2)
        • 일상 (1)
      • 기타 (7)
      • 알고리즘 문제 (2)
        • 백준 (0)
        • 프로그래머스 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • 깃허브
  • 공지사항

  • 인기 글

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
MaKa_
[자료구조] 스택(Stack)이란?
상단으로

티스토리툴바