선형덱

2022. 11. 28. 20:07·정리 전 게시글/공부 관련
#include<stdio.h>
#include<stdlib.h>
#define MAX_QUEUE_SIZE 100

int data[MAX_QUEUE_SIZE];
int front;
int rear;

void init_queue() { front = rear = 0; }
void add_rear(int val) { enqueue(val); }
int delete_front() { return dequeue(); }
int get_front() { return peek(); }
int is_empty() { return front == rear; }
int is_full() { return front == (rear + 1) % MAX_QUEUE_SIZE; }
int size() { return (rear - front + MAX_QUEUE_SIZE) % MAX_QUEUE_SIZE; }

void enqueue(int val) {
	if (!is_full()) {
		rear = (rear + 1) % MAX_QUEUE_SIZE;
		data[rear] = val;
	}
}

int dequeue() {
	if (!is_empty()) {
		front = (front + 1) % MAX_QUEUE_SIZE;
		return data[front];
	}
}

int peek() {
	if (!is_empty()) {
		return data[(front + 1) % MAX_QUEUE_SIZE];
	}
}

void add_front(int val) {
	if (!is_full()) {
		data[front] = val;
		front = (front - 1 + MAX_QUEUE_SIZE) % MAX_QUEUE_SIZE;
	}
}

int delete_rear() {

}

void print_queue(char msg[]) {
	int i, maxi = rear;
	if (front >= rear) maxi += MAX_QUEUE_SIZE;
	printf("%s[%2d]= ", msg, size());
	for (i = front + 1; i <= maxi; i++) {
		printf("%2d ", data[i % MAX_QUEUE_SIZE]);
	}
	printf("\n");
}

void main() {
	int i;
	init_queue();
	for (int i = 1; i < 10; i++) {
		enqueue(i);
	}
	print_queue("선형큐 equeue 9회");
	printf("\tdequeue() --> %d\n", dequeue());
	printf("\tdequeue() --> %d\n", dequeue());
	printf("\tdequeue() --> %d\n", dequeue());
	print_queue("선형큐 equeue 3회");
}
저작자표시 (새창열림)

'정리 전 게시글 > 공부 관련' 카테고리의 다른 글

이진트리  (0) 2022.12.05
연결리스트를 이용한 다항식을 계산하고 사용자가 입력한 문자열을 파싱하는 Polynominal 코드 만들기  (0) 2022.11.29
연결된큐  (0) 2022.11.28
이것이 자바다 11장 확인 문제 답 - 신용권의 Java 프로그래밍 정복  (0) 2022.11.16
연결리스트 스택  (0) 2022.11.04
'정리 전 게시글/공부 관련' 카테고리의 다른 글
  • 이진트리
  • 연결리스트를 이용한 다항식을 계산하고 사용자가 입력한 문자열을 파싱하는 Polynominal 코드 만들기
  • 연결된큐
  • 이것이 자바다 11장 확인 문제 답 - 신용권의 Java 프로그래밍 정복
aptenia
aptenia
공부하면서 배운 것들
  • aptenia
    새벽의 아이디어
    aptenia
  • 전체
    오늘
    어제
    • 분류 전체보기 (279)
      • 논문 (0)
      • Roboracer (2)
      • 개발 아무거나 (1)
      • 일상 아무거나 (2)
      • 정리 전 게시글 (268)
        • 개발 관련 (25)
        • 정보 관련 (19)
        • 공부 관련 (224)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 네이버 블로그
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    마크스크립트
    스크롤바CSS
    마인크래프트강화스크립트
    빅데이터공모전
    공개SW개발자대회
    콜라츠추측
    백준
    프로그래머스
    이것이자바다
    C언어
    C++강좌
    c언어초보
    C언어강좌
    자바
    마인크래프트
    티스토리스킨편집
    안드로이드
    마크
    이것이자바다확인문제
    파이어베이스
    파이썬
    캡스톤디자인
    마인크래프트스크립트
    일본규슈공업대학교
    티스토리HTML
    프로그래머스PCCE
    이것이자바다연습문제
    반복하지않는수
    티스토리반응형2스킨편집
    컨텍스트스위칭
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
aptenia
선형덱
상단으로

티스토리툴바