여러 데이터들의 묶음을 어떻게 저장하고, 사용할것인지 정의하는것
사전적인 의미는 자료(Data)의 집합의 의미하며, 각 원소들이 논리적으로 정의된 규칙에 의해 나열되며 자료에 대한 처리를 효율적으로 수행할 수 있도록 자료를 구분하여 표현한 것이다.
자료들은 잘 정리 되며 활용이 잘되어야 의미 있다고 생각해서 만든 개념이 자료구조이다.
따라서 대부분의 자료구조들은 특정한 상황에 특정한 문제들을 해야할때 자료구조를 활용해야 문제를 문제를 풀수있다.
세로로 된 통안에 자료를 쌓는구조라고 생각하면 된다.
스택구조를 비유로 드는것이 프링글스 과자이다
1. 프링글스을 제조할떄 통안에 프링글스과자를 밑에서 부터 차곡차곡 쌓아서 통안에 담는다음 뚜껑을 담는다
2. 그리고 제조된 프링글스 먹을떈 맨 나중에 쌓여진 과자부터 먹는다
이 방식을 LIFO(Last In First Out) 라고한다.
또 맨 밑에 있는과자를 먹을려면 위에있는 과자를 다먹어야 먹을 수 있다.
이 방식을 FILO(First In Last Out)라고 한다.
즉, 가장 먼저 들어간 데이터가 먼저 나올수 있고
출입구가 동일하고
중간에 데이터를 끼워 넣을 수 없다
톨게이트 처럼 뒤에서 차들이 오면 먼저온 차부터 빠져나가는 한방향적인 데이터 구조이다.
한 반향에서 입력이 이뤄지고 그 반대편에서 출력이 이루어진다.
자료가 입력된 순서대로 처리해야 할 필요가 있는 상황에서 사용된다.
한쪽 끝에서는 삽입만 이루어지며 다른쪽 끝에서는 삭제만 연산된다.
먼저 삽인된 Item이 먼저 삭제된다.
FIFO(First In First Out) 혹은 LILO(Last In Last Out) 방식