본문 바로가기

알고리즘/기초자료구조

스택, 큐 설명

기초적인 자료구조

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