기초적인 자료구조
malloc 이나 new를 활용하는 동적할당이 아닌 알고리즘 문제풀이에 필요한 방법으로 구현할 것이기 때문에 배열을 사용한다.
Stack
스택은 한 쪽 끝에서만 자료를 넣고 뺄 수 있다.
마지막에 넣은 data가 가장 먼저 나오는 구조 Last In First Out LIFO이다.
stack의 함수에는
push : 데이터를 스택에 넣는 연산
pop : 스택에서 가장 마지막에 넣은 데이터를 빼는 연산
empty : 스택이 비어있는지 확인
top : 스택에 가장 마지막으로 넣은 데이터를 확인
size : 스택에 들어있는 데이터의 개수
스택을 구현하기 위해서는 int data[N], int size가 필요하다.
Queue
큐는 한 쪽 끝에서만 데이터를 넣을 수 있고 반대쪽에서 데이터를 뺄 수 있다.
가장 먼저 넣은 data가 가장 먼저 나오는 First In First Out FIFO이다.
queue의 함수에는
push : 큐에 데이터를 넣는 연산
pop : 큐에서 데이터를 빼는 연산
empty : 큐가 비어있는지 확인
size : 큐에 들어있는 데이터의 개수
front : 큐의 가장 앞에 있는 데이터를 확인
back : 큐의 가장 뒤에 있는 데이터를 확인
큐를 구현하기 위해서는 int data[N], int begin, int end가 필요하다.
스택의 top이나 큐의 front, back은 스택이나 큐에 어떤 영향을 미치지 않고 출력 등에 사용한다.
'알고리즘 > 기초자료구조' 카테고리의 다른 글
[B10828] - 스택 (0) | 2018.08.26 |
---|