자료구조를 설명하기에 앞서 데이터를 먼저 살펴보게 되는데 데이터는 문자, 숫자, 소리, 그림, 영상 등 실생활을 구성하고 있는 모든 값 이라고 생각하면된다. 데이터는 분류/정리 되어 있지 않다면 의미가 없다. 그래서 데이터를 필요에 따라 잘 분류하고 정리하는 방법이 바로 자료구조이다.
자료구조는 위와 같이 여러가지가 있지만 이 포스팅에선 Stack 과 Queue 를 중점적으로 복습할 것이다. (ps. 스택 큐 트리 그래프 는 알고리즘 문제에 자주 활용된다고 하니 참고한다.)
stack은 쌓다의 뜻의 가지고 있으며 stack을 다시 복습하는 사람 입장에선 그냥 간단하게 생각하면 아래와 같다.
후입선출
가장 늦게 들어간 데이터가 가장 먼저 나온다고 생각하면 된다. 머릿속으로 그림을 그려보면 앞이 가로막힌 골목길에 들어간 차들이 빽빽하다고 생각해보자. 앞이 가로막혔으니 뒤로 들어온 가장 마지막차가 먼저나갈 수 있을 것이다.
이 stack을 가지고 활용된 실생활 예가 웹브라우저 뒤로가기 앞으로가기 기능 이다.
Queue는 줄을 서서 기다리다,대기행렬의 뜻이 있다. 그리고 간단하게 생각하면 아래와 같다.
선입선출
stack과 달리 먼저 들어간 데이터가 먼저 나온다고 생각할 수 있으며,가장 대표적 예시로는 프린터 이다. 또는 톨케이트에 서있는 차들을 데이터로 비유를 들어보면 그림이 그려진다. 톨게이트에 들어선 차들이 나가려면 톨게이트에서 가장 먼저 요금을 지불한 차 일것이다. 먼저 들어간 차가 먼저 나가는 시스템이다.
기초개념은 이 정도로 하고, 기본 문제를 보면서 진행하는게 더 좋을 듯 하다.