개요
Stack 자료구조란 요소들이 후입선출(Last-In First-Out)되는 방식의 자료구조이다.
말 그대로 가장 늦게 들어온 요소가 가장 처음으로 나간다.
구조
스택은 기본적으로 사진 1과 같은 구조를 가진다.
아래에서부터 요소가 쌓이며 Top 포인터는 가장 위에 있는 요소를 가르킨다.
operation으로는 대표적으로 Push와 Pop이 있다.
Push operation은 스택에 아이템을 추가한다.
사진 2는 사진 1에서 5를 push했을 때의 예시 사진이다.
Pop operation은 스택에서 아이템을 제거한다.
사진 3은 사진 2에서 5를 pop하는 예시이다.
사진 2와 3에서, Top 포인터가 가르키는 위치는 항상 스택의 맨 위 임을 알 수 있다.
어디에서 사용하는가?
위 사진은 VS code에서의 괄호이다.
스택을 사용해서 괄호 매칭 문제를 해결할 수 있다.
현재 사진에서 괄호의 문자열은 { { { } } } 이다.
이제 여는 괄호는 스택에 Push하고 닫는 괄호 문자열을 만날 시 여는 괄호를 스택에서 하나씩 Pop을 하면서 괄호 매칭에 대해 알아볼 것이다.
사진 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 |