자료구조 스택(stack)이란? (ft. 그림으로 쉽게 설명)
안녕하세요.
로스윗의 코딩캠프입니다.
오늘은 자료구조 중에서 중요한 스택에 대해서 같이 알아보겠습니다.
- 스택이란?
-> 스택은 후입선출의 대표적인 선형 자료구조 중 하나입니다.
후입선출이란 영어로는 Last-in-first-out 줄여서 LIFO(리포)라고 합니다.
나중에 들어온 데이터가 먼저 나간다는 뜻입니다.
쉽게 예를들면,
우리가 인터넷 브라우저에서 뒤로가기 버튼 많이 사용하시죠.
뒤로가기 버튼을 누르면 가장 최근에 열었던 마지막 페이지가 나옵니다.
그리고 한 번 더 누르게 되면 그 이전 그 이전 페이지가 나옵니다.
이런식으로 역으로 찾아들어가게 됩니다.
또 control+Z로 실행취소를 할 때도 마찬가지 입니다.
가장 최근에 입력했던 마지막 동작의 순서부터 하나씩 역으로 실행취소를 하게 되죠.
이런 구조를 후입선출이라고 합니다.
스택을 그림으로 도식화하면 그림과 같은 모양이 나옵니다.
순서가 있기는 하지만
Top을 기준으로해서 삽입도 리스트의 마지막에 들어가게 되고
삭제나 데이터를 가져올 때도 리스트의 마지막 부분을 기준으로 해서 이루어지게 됩니다.
그래서 먼저 들어간게 나중에 나오게 되고
나중에 들어간게 먼저 나오게 되는 모양새가 나오게 됩니다.
이것을 흔히 접시 쌓기에 비유를 많이 합니다.
접시를 쌓게 되면 가장 먼저 쌓은 접시가 가장 아래에 있고
가장 나중에 쌓은 접시가 가장 위에 있게 되잖아요.
그래서 우리가 접시를 꺼내 쓸때 가장 위에서부터 꺼내 쓰는것처럼
스택도 그와 같은 동작을 한다고 보시면 됩니다.
-스택에서는 중요한 연산 3가지
데이터를 넣는 작업인 push
데이터를 빼오는 작업인 pop
그리고 데이터를 그대로 둔채 가장 위에 있는 데이터만 확인하는 연산인 top, 혹은 peek이 있습니다.
그림으로 예를들어 설명해보겠습니다.
- Push
아직 아무것도 없는 상황에서 push를 하게 되면 첫번재 데이터가 들어오게 되겠죠.
여기서 한 번더 push를 하게 되면 그 위에 데이터가 쌓이게 됩니다.
그리고 한 번더 하면 그 위에 계속해서 쌓일 겁니다.
이렇게요.
- Pop
여기서 pop을하게 되면
가장 늦게 들어와서 가장 위에 있는 초록색 노드가 빠지게 될거구 노드는 3개가 남게 됩니다.
여기서 또 pop을하면 연노란색 노드가 빠지고 노드는 2개가 남게 되겠죠.
- Peek
여기서 이제 peek을 하게 되면
2개의 노드중 가장 위에 있는 주황색 노드를 그대로 둔채 데이터만 빼오게 됩니다.
그러면 데이터를 확인하기위해 가져왔지만 여전히 2개의 노드가 남아있게 되는거죠.
여기서 다시 pop을 하면 가장 위에 있는 주황색 노드를 가져오면서 스택에는 빨간색 노드만 남게 되겠죠.
스택에서 중요한 연산인 push, pop, peek에 대해서 알아보았습니다.
참 쉽죠~?
다음 포스팅에서 이어서 하도록 하겠습니다.
로스윗의 코딩 캠프는 미래의 개발자 여러분을 응원합니다!!
모두 화이팅입니다!!
'컴퓨터 공학 > 자료구조와 알고리즘' 카테고리의 다른 글
원형큐(Circular Queue)를 반드시 사용해야 하는 이유 (ft. 그림으로 쉽게 설명) (1) | 2022.10.23 |
---|---|
그림으로 쉽게 이해하는 자료구조 큐(Queue) (ft. 큐를 배열기반에서 절대 선형으로 구현하지 않는 이유) (0) | 2022.10.22 |
이중연결리스트 (Double Linked List) 사용법 (ft. 데이터 삭제하기) (0) | 2022.10.20 |
이중연결리스트 (Double Linked List) 사용법 (ft. 데이터 추가하기) (0) | 2022.10.19 |
이중연결리스트 (Double Linked List) 사용법 (ft. 데이터 검색하기) (0) | 2022.10.18 |