1. 자료구조
- 대량의 데이터를 효율적으로 관리할 수 있도록 하는 데이터 구조
2. 배열
- 같은 종류의 데이터를 효율적으로 관리하기 위해 사용
- 같은 종류의 데이터를 순차적으로 저장
- 장점 : 빠른 접근 가능(첫 데이터의 위치에서 상대적인 위치로 접근<인덱스 번호>)
- 단점 : 데이터 추가/삭제의 어려움(미리 길이를 지정해야함)
3. 큐
- 줄을 서는 행위와 유사
- 가장 먼저 넣는 데이터를 가장 먼저 꺼낸다(FIFO)
Enqueue(넣기)
Dequeue(꺼내기)
파이썬에 queue 라이브러리 있음
Queue() : 일반적인 큐 구조
LifoQueue() : 나중에 입력된 데이터가 먼저 출력(스택 구조)
priorityQueue() : 데이터마다 우선 순위를 넣어서 순위가 높은 순으로 데이터 출력
큐는 멀티 태스킹을 위한 프로세스 스케쥴링 방식을 구현하기 위해 많이 사용
4. 스택
- 데이터를 제한적으로 접근할 수 있는 구조
- 가장 나중에 쌓은 데이터를 가장 먼저 꺼낼 수 있다(LIFO|FILO)
대표적인 스택활용 : 컴퓨터 내부의 프로세스 구조의 함수 동작 방식
Push() : 넣기
Pop() : 꺼내기
- 장점 : 구조가 단순, 구현이 쉽다. 데이터 저장/읽기 속도가 빠름
- 단점 : 데이터 최대 갯수 미리 정해야함
저장공간 낭비 발생 가능성