여러 데이터의 묶음을 저장하고, 사용하는 방법을 정의한 것입니다.
데이터는 분석하고 정리하고, 활용해야 의미를 가질 수 있습니다.
자료구조를 통해 목적에 맞게 구분하고, 분류하여 사용합니다.
대부분의 자료구조는 특정 상황에 놓인 문제를 해결할 때 특화되어 있습니다. 많은 자료구조를 알아두면, 어떤 상황이 왔을 때에도 적합한 자료구조를 빠르고 정확하게 적용하여 문제를 해결할 수 있습니다.
특정 문제를 해결할 때 적합한 자료구조를 찾아 데이터를 정리하고 활용할 수 있다면 상황에따라 가장 적합하고 정확한 코드를 작성할 수 있습니다.
쌓다, 쌓이다, 포개다 와 같은 뜻을 가지고 있습니다. 이 자료구조는 데이터를 순서대로 쌓는 자료구조입니다.
가장 먼저 입력된 데이터는 가장 나중에 나올 수 있습니다. 반대로 가장 마지막에 입력된 데이터는 가장 빨리 나올 수 있습니다.
Stack의 특징은 입력과 출력이 한 방향으로 이루어지는 제한적 접근에 있습니다.
우리가 사용하는 브라우저의 뒤로 가기, 앞으로 가기 기능을 구현할 때 Stack이 활용됩니다.
작동 원리
1. 새로운 페이지로 접속할 때, 현재 페이지를 Prev Stack에 보관합니다.
2. 뒤로 가기 버튼을 눌러 이전 페이지로 돌아갈 때, 현재 페이지를 Next Stack에 보관하고 Prev Stack에 가장 나중에 보관된 페이지를 현재 페이지로 가져옵니다.
3. 앞으로 가기 버튼을 눌러 앞서 방문한 페이지로 이동할 때에는 Next Stack의 가장 마지막으로 보관된 페이지를 가져옵니다.
4. 마지막으로 현재 페이지를 Prev Stack에 보관합니다.
줄을 서서 기다리다, 대기행렬이라는 뜻을 가지고 있습니다.
자료구조 Queue는 Stack과 반대되는 개념으로, 먼저 들어간 데이터가 먼저 나오는 FIFO, LILO 특징을 가지고 있습니다.
Queue는 데이터가 입력된 순서대로 처리할 때 주로 사용합니다.