Stack
- LIFO 방식(Last-In, First-Out)
- 후입선출방식
- 나중에 들어온 것이 먼저 나오게 된다.
Stack ADT
void Init(Stack * stack);
- 스택의 초기화
- 스택 생성 후 제일 먼저 호출되어야 하는 함수
void IsEmpty(Stack * stack);
- 스택이 빈 경우 True(1), 그렇지 않은 경우 False(0)을 반환
void Push(Stack * stack, Data data);
- 스택에 데이터를 저장
- 매개변수 data로 전달된 값 저장
Data Pop(Stack * stack)
- 마지막에 지정된 요소를 삭제
- 삭제된 데이터는 반환됨
- 본 함수의 호출을 위해서는 데이터가 하나 이상이 존재함을 보장해야 함
Data Top(Stack * stack)
- 마지막에 저장된 요소 반환, 삭제X
- 본 함수의 호출을 위해서는 데이터가 하나 이상 존재함이 보장
Queue
- FIFO(First-In, First-Out) 구조
- 선입선출방식
Queue ADT
void Init(Queue * queue);
- 큐의 초기화
- 큐 생성 후 제일 먼저 호출되어야 함
void IsEmpty(Queue * queue);
- 큐가 빈 경우 True(1), 그렇지 않은 경우 False(0)을 반환
void hEnqueue(Queue * queue, Data data);
- 큐에 데이터를 저장
- 매개변수 data로 전달된 값 저장
Data Dequeue(Queue * queue)
- 저장순서가 제일 앞선 요소를 삭제
- 삭제된 데이터는 반환됨
- 본 함수의 호출을 위해서는 데이터가 하나 이상이 존재함을 보장해야 함
Data Top(Queue * queue)
- 마지막에 저장된 요소 반환, 삭제X
- 본 함수의 호출을 위해서는 데이터가 하나 이상 존재함이 보장
Deque(덱)
- double-ended queue
- 큐는 뒤로 넣고 앞으로 빼지만, 덱은 앞으로도 뒤로도 넣고 뺄 수 있는 자료구조이다.
- 스택과 큐의 특성을 조합한 형태의 자료구조
참고 - 윤성우의 열혈 자료구조