목록큐 (4)
without haste but without rest
# include # include // 프로그램 5.2에서 다음과 같은 부분을 복사한다. // ================ 원형큐 정의부 시작 ================= typedef struct { // 요소 타입 int id; int arrival_time; int service_time; int start_time; } element;// 교체! // ================ 원형큐 정의부 종료 ================= // ===== 원형큐 코드 시작 ====== #define MAX_QUEUE_SIZE 30 typedef struct { // 큐 타입 element data[MAX_QUEUE_SIZE]; int front, rear; } QueueType; // 오류 함수 ..
#include #include #include #define MAX_SIZE 5 /* 원형 큐 q->rear = (q->rear + 1) % MAX_SIZE; 전체 길이로 나눠서 앞에 빈 공백을 다시 재활용 따라서 is_full() 함수에 추가적인 작업이 필요함 */ typedef int element; typedef struct { element queue[MAX_SIZE]; int front, rear; } QueueType; void error(char* msg) { fprintf(stderr, "%s\n", msg); // remind this point exit(1); } void init_Queue(QueueType* q) { q->front = q->rear = 0; } int is_emp..
#include #include #define MAX_SIZE 5 /* 선형 큐 디큐로 인자를 빼는 경우 앞 공간을 활용하기가 쉽지 않다. 코드에서 디큐로 3까지 뽑았는데, 엔큐를 하면 오버플로우가 난다. 큐 배열에 데이터는 아직 존재하기 때문이다. 따라서 원형 큐로 변경하여, 빠져나간 공간을 재활용할 수 있게 만든다. */ typedef int element; typedef struct { element queue[MAX_SIZE]; int front, rear; } QueueType; void error(char* msg) { fprintf(stderr, "%s\n", msg); // remind this point exit(1); } void init_Queue(QueueType* q) { q->f..
큐(Queue) 큐는 엔큐(Enqueue)와 디큐(Dequeue)로 구성 Enqueue: 데이터 인풋 Dequeue: 데이터 아웃풋 1. 가장 먼저 삽입한 데이터가 가장 먼저 출력 ex) line up 2. FIFO (First-in First-out), LILO (Last-in Last-out) 구조 3. 멀티 태스킹을 위한 프로세스 스케쥴링 방식 구현에서 자주 사용 # Queue class Queue: def __init__(self): self.queue_list = [] def enqueue(self, data): self.queue_list.append(data) def dequeue(self): if self.queue_list == []: return False else: res = self..