리스트의 한쪽 끝에서만 삽입과 삭제가 일어나는 스택과는 달리 리스트의 한쪽 끝에서는 원소들이 삭제되고 반대쪽 끝에서는 원소들의 삽입만 가능하게 만든 순서화된 리스트. 가장 먼저 리스트에 삽입된 원소가 가장 먼저 삭제되므로 선입 선출(先入先出)인 FIFO(first in first out) 리스트라고 한다.





#include <stdio.h>

#include <malloc.h>


#define MAX 10

int queue[MAX];

int front, rear;


int put(int data)

{

if (rear < MAX) {

queue[rear++] = data;

return data;

}

printf("Queue overflow\n");

return -1;

}


int get() {

if (front < MAX) {

if (front < rear) {

return queue[front++];

}

printf("There is no data in Queue\n");

}

else {

printf("Queue overflow\n");

}

return -1;

}


void printList() {

int i;


printf("Queue :");

for (i = front; i < rear; ++i) {

printf(" %d", queue[i]);

}

printf("\n");

}


int main()

{

int i;

front = rear = 0;


get();


for (i = 0; i < 11 ; ++i) {

put(i);

}


printList();


return 0;

}


* 출처 : https://www.tutorialspoint.com/data_structures_algorithms/

'SW > 자료구조' 카테고리의 다른 글

Tree  (0) 2019.02.23
Circular Queue  (0) 2019.01.06
Stack  (0) 2019.01.06
Linked List 3 - Circular Linked List  (0) 2019.01.06
Linked List 2 - Doubly Linked List  (0) 2019.01.06

+ Recent posts