-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbai9.c
67 lines (53 loc) · 1.74 KB
/
bai9.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
//9.Viết chương trình cài đặt hàng đợi bằng mảng. Nhập vào queue
//6 phần tử { 41, 23, 4, 14, 56, 1 }. Sau đó thêm vào phần tử {55} và loại bỏ phần {23}.
//In hàng đợi sau khi thêm và bỏ.
#include <stdio.h>
#define MAX_SIZE 100
int queue[MAX_SIZE];
int front = 0;
int rear = -1;
int rong() {
return front > rear;
}
int day() {
return rear == MAX_SIZE - 1;
}
void themVaoHangDoi(int phanTu) {
if (!day()) {
queue[++rear] = phanTu;
} else {
printf("Hang doi da day. Khong the them phan tu %d.\n", phanTu); }}
int layRaKhoiHangDoi() {
if (!rong()) {
return queue[front++];
} else {
printf("Hang doi rong. Khong the lay phan tu.\n");
return -1;}}
int giaTriPhiaTruoc() {
if (!rong()) {
return queue[front];
} else {
printf("Hang doi rong. Khong co gia tri phia truoc.\n");
return -1; }}
int kichThuoc() {
return rear - front + 1;}
int main() {
// Nhap vao hang doi 6 phan tu
int cacPhanTu[] = {41, 23, 4, 14, 56, 1};
int soPhanTu = sizeof(cacPhanTu) / sizeof(cacPhanTu[0]);
for (int i = 0; i < soPhanTu; i++) {
themVaoHangDoi(cacPhanTu[i]); }
// Them phan tu 55 vao hang doi
themVaoHangDoi(55);
printf("Hang doi sau khi them phan tu 55: ");
for (int i = front; i <= rear; i++) {
printf("%d ", queue[i]); }
printf("\n");
// Loai bo phan tu 23 khoi hang doi
layRaKhoiHangDoi(); // Bo qua gia tri tra ve, khong can in ra
printf("Hang doi sau khi loai bo phan tu 23: ");
for (int i = front; i <= rear; i++) {
printf("%d ", queue[i]); }
printf("\n");
return 0;
}