스택(Stack) : 선입후출 혹은 후입선출 , LIFO 구조

시스템 스택에도 스택개념이 사용

 

 

 

간단한 스택 구현

 

 

스택구현

 

void printStack(); 스택출력
void stackFull();  스택이 가득차 더이상넣을수 없음을 알리고, 스택요소들을 출력후 종료
student stackEmpty(); 스택이 비어 뺄수없음을 알리고, 에러값 반환
void push(student item); 스택 push
student pop(); 스택 pop 하고 값 반환

 

 

스택이 아래에서 위로쌓이는 중.

 

 

 

 

 

큐(Queue) : 선입선출, FIFO 구조

os의 스케쥴링 및 그래프 탐색 알고리즘 등에 사용


void printQueue();
student queueEmpty();
void addq(student item);
student deleteq();
void queueFull(student item);

 

함수의 구성은 스택과 동일하다.

하지만 큐는 front와 rear가 존재함으로써 rear에 계속해서 데이터가 들어오게 되면 front 쪽에서 데이터가 빠진 자리는 

낭비되기 마련이다. 따라서 array shifting 을통해 큐가 정말꽉차지 않는 이상 계속해서 배열을 쓸수 있도록

하였다. 이러한 문제점을 원형큐를 통해 더 쉽게 해결할 수 있다.

 

 

간단한 큐 구현

 

 

5의 크기를 가지고있지만, 6번째 데이터도 araryshift를 통해 add가능

 

 

 

 

 

'Data Structure' 카테고리의 다른 글

요셉의문제(Circular Linked List)  (0) 2020.06.14
연결리스트(Linked List)  (0) 2020.06.10
중위표기식, 후위표기식(Infix, Postfix)  (0) 2020.06.08
스택을 이용한 미로찾기  (0) 2020.06.08
원형 큐(Circular Queue)  (0) 2020.06.08