4

[C언어] 연결리스트 큐 Linked Queue

공백 상태 > front와 rear가 NULL값 🟡 연결리스트로 구현한 큐 코드 #include #include typedef int element; typedef struct { element data; struct StackNode* link; }QueueNode; typedef struct { QueueNode* front, *rear; } LinkedQueueType; void init(LinkedQueueType* s) { s->front = s->rear = 0; } int is_full(LinkedQueueType* s) { return 0; } int is_empty(LinkedQueueType* s) { return (s->front == NULL); } void push(LinkedQu..

Algorithm 2023.01.12

[C언어] - 원형 덱 double-ended queue

🔵 원형 덱 double-ended queue 원형 큐는 항상 하나의 자리를 비워둠 front, rear에서 모두 삽입, 삭제가 가능한 큐 front, rear 모두 0으로 초기화 공백 상태 > front == rear 포화 상태 > front = (rear + 1) % M큐크기 🟡 원형 덱 코드 add_rear 뒤로 이동 > 빈 공간에 삽입 get_front 뒤로 이동 > 해당 값 삭제 get_rear 삭제 > 앞으로 이동 add_front 삽입 > 앞으로 이동 #include #include #define MAX_SIZE 10 typedef int element; typedef struct { int front, rear; element data[MAX_SIZE]; } QueueType; void i..

Algorithm 2023.01.12

[C언어] - 원형 큐 Circular Queue

🔵 원형 큐는 항상 하나의 자리를 비워둠 > 포화 상태 - front가 rear보다 하나 앞에 있는 경우 front == (rear + 1) % M큐크기 > 공백 상태 - front == rear 인 경우 🟡 원형 큐 코드 #include #include #define MAX_SIZE 10 typedef int element; typedef struct { int front, rear; element data[MAX_SIZE]; } QueueType; void init(QueueType* q) { q->front = -1; q->rear = -1; } int is_full(QueueType* q) { return q->front == (q->rear + 1) % MAX_SIZE;// 원형 큐의 경우 } ..

Algorithm 2023.01.11
728x90