c语言实现队列,用数组
时间: 2023-04-08 20:01:20 浏览: 88
可以实现队列的基本操作,包括入队和出队。具体实现方法可以使用数组来存储队列元素,使用两个指针front和rear来分别指向队列的头部和尾部。入队操作时,将元素添加到rear指针所指的位置,并将rear指针向后移动一位;出队操作时,将front指针所指的元素取出,并将front指针向后移动一位。需要注意的是,当队列满时,不能再进行入队操作;当队列为空时,不能进行出队操作。
相关问题
c语言用数组实现队列
C语言用数组实现队列是一种基于数组的数据结构,它遵循先进先出的原则。队列有两个指针,一个指向队头,一个指向队尾。当元素入队时,它被添加到队尾,当元素出队时,它被从队头删除。C语言用数组实现队列的代码如下:
1.定义队列大小和数组
#define SIZE 1024
static int queue[SIZE] = {0};
static int head, tail;
2.判断队列是否为空
int Is_Empty(void) {
return head == tail;
}
3.判断队列是否已经满了
int Is_Full(void) {
return (head+1)%SIZE == tail;
}
4.入队
int enqueue(int value) {
if (Is_Full()) {
return 1;
}
queue[head] = value;
head = (head + 1) % SIZE;
return 0;
}
5.出队
int dequeue(int *value) {
if (Is_Empty()) return 1;
*value = queue[tail];
tail = (tail + 1) % SIZE;
return 0;
}
6.主函数
int main(void) {
int i;
int temp;
int buffer = {1, 2, 3, 4, 5};
printf("入队前:\n");
for(i = 0; i < 5; i++) {
printf("queue[%d]:%d\n", i, queue[i]);
}
for(i = 0; i < 5; i++) {
enqueue(buffer[i]);
}
printf("入队后:\n");
for(i = 0; i < 5; i++) {
printf("queue[%d]:%d\n", i, queue[i]);
}
printf("出队后:\n");
while(1) {
if (dequeue(&temp)) break;
printf("%d\n", temp);
}
getchar();
}
c语言实现订票候补队列,数组存储数据
可以使用数组实现订票候补队列。具体方法是设置两个指针front和rear分别指向队列的头和尾,每当有新的订票请求时,先判断队列是否已满,如果未满,则将请求加入到队尾rear的位置,同时将rear指针移动到下一个空位置。当有票空余时,则从队头front取出一个请求进行处理,同时将front指针移动到下一个请求的位置。
至于如何存储数据,可以使用一个大小为n的数组来表示队列,其中n为队列的容量。假设数组名为queue,则front和rear的初始值都为0。当队列为空时,有front=rear;当队列已满时,有(rear+1)%n=front。每个元素所存储的数据可以包括订票人姓名、身份证号、联系方式、车次、座位等信息。