둠치킨
코딩하는 둠치킨
둠치킨

블로그 메뉴

  • 홈
  • 분류 전체보기 (201)
    • BOJ (159)
      • 스택 (14)
      • 큐 (5)
      • 덱 (4)
      • 그래프 (30)
      • 배열 (8)
      • 재귀 (12)
      • 브루트 포스 (2)
      • 그리디 알고리즘 (7)
      • 다이내믹 프로그래밍 (6)
      • 백트래킹 (24)
      • 기하학 (4)
      • 트리 (4)
      • 구현 (14)
      • 수학 (3)
      • 맵 (1)
      • 다익스트라 (2)
    • 자료구조 (14)
      • 스택 (3)
      • 큐 (5)
      • 덱 (2)
      • 그래프 (1)
      • 트리 (1)
      • 힙 (1)
      • 정렬 (1)
    • C++ (6)
      • 모두의코드 (2)
      • Effective C++ (3)
      • C++ STL (1)
    • 컴파일러 (1)
    • OS (17)
    • 컴퓨터 구조 (2)
    • Unreal Engine 5 (2)

공지사항

전체 방문자
오늘
어제

인기 글

최근 글

태그

  • BFS
  • boj
  • Bruteforce
  • C
  • C++
  • C++ STL
  • Cache Memory
  • deadlock
  • DFS
  • Effective C++
  • java
  • Mutex
  • next_permutation
  • os
  • Process
  • rotate
  • semaphore
  • spin lock
  • STL
  • Thread
hELLO · Designed By 정상우.
둠치킨

코딩하는 둠치킨

자료구조/큐

선형 큐 (배열로 구현)

2021. 12. 29. 15:08

선형 큐의 기본 설명은 '선형 큐 (구조체로 구현)' 글에서 설명을 했으므로 생략하겠다.

단순 배열로 큐의 동작 상태를 보기 위해 구현한 코드를 바로 보이겠다.

선형 큐의 동작 상태 코드

#include <stdio.h>
#include <stdlib.h>
#define MAX 5

int front;
int rear;
int data[MAX];

// 선형 큐 초기화 
void init_queue()
{
	rear = -1;
	front = -1;
}

// 선형 큐 상태 출력
void queue_print()
{
	for (int i = 0; i<MAX; i++) {
		if (i <= front || i> rear)
			printf("   | ");
		else
			printf("%d  | ", data[i]);
	}
	printf("\n");
}

// 선형 큐가 포화상태인가?
int is_full()
{
	if (rear ==  MAX - 1 )
		return 1;
	else
		return 0;
}

// 선형 큐가 공백상태인가?
int is_empty()
{
	if ( front == rear ) //front==rear이면 빈 상태
		return 1;
	else
		return 0;
}

// 선형 큐에 데이터 삽입
void enqueue(int item)
{
	if (is_full()) {
		printf("큐가 포화상태입니다.\n");
		return;
	}
	data[  ++(rear)  ] = item;
}

// 선형 큐에서 데이터 제거
int dequeue()
{
	if (is_empty()) {
		printf("큐가 공백상태입니다.\n");
		return -1;
	}
	int item = data[ ++(front) ];
	return item;
}	

int main(void)
{
	init_queue();
	dequeue(); queue_print();
	enqueue(1); queue_print();
	enqueue(2); queue_print();
	enqueue(3); queue_print();
	enqueue(4); queue_print();
	enqueue(5); queue_print();
	enqueue(6); queue_print();
	dequeue(); queue_print();
	dequeue(); queue_print();
	dequeue(); queue_print();
	dequeue(); queue_print();
	dequeue(); queue_print();
	dequeue();
	return 0;
}

 

실행 결과

큐가 공백상태입니다.

   |    |    |    |    |
1  |    |    |    |    |
1  | 2  |    |    |    |
1  | 2  | 3  |    |    |
1  | 2  | 3  | 4  |    |
1  | 2  | 3  | 4  | 5  |

큐가 포화상태입니다.

1  | 2  | 3  | 4  | 5  |
   | 2  | 3  | 4  | 5  |
   |    | 3  | 4  | 5  |
   |    |    | 4  | 5  |
   |    |    |    | 5  |
   |    |    |    |    |

큐가 공백상태입니다.
저작자표시 (새창열림)

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

큐 (연결리스트로 구현)  (0) 2021.12.29
원형 큐 (구조체로 구현)  (0) 2021.12.29
원형 큐 (배열로 구현)  (0) 2021.12.29
선형 큐 (구조체로 구현)  (0) 2021.12.28
    '자료구조/큐' 카테고리의 다른 글
    • 큐 (연결리스트로 구현)
    • 원형 큐 (구조체로 구현)
    • 원형 큐 (배열로 구현)
    • 선형 큐 (구조체로 구현)
    둠치킨
    둠치킨
    코딩 공부를 위한 코딩 블로그 기록 일기

    티스토리툴바