gpt4 book ai didi

c - 链表C编程之队列

转载 作者:行者123 更新时间:2023-11-30 17:52:08 25 4
gpt4 key购买 nike

我的程序有问题。我创建了一个链表队列,当我使用 delQueue 函数清除队列时,我的队列消失了,我无法再推送任何内容。

我该如何解决这个问题?除非我删除队列中的所有内容,否则我的推送功能可以正常工作。

这是我的代码:

#include <stdio.h>
#include <time.h>
#include <stdlib.h>

int count = 0;

struct Node
{
int Data;
struct Node* next;
}*rear, *front;

void delQueue()
{

struct Node *var=rear;
while(var!=NULL)
{
struct Node* buf=var->next;
free(var);
count = count + 1;

}

}

void push(int value)
{
struct Node *temp;
temp=(struct Node *)malloc(sizeof(struct Node));
temp->Data=value;
if (front == NULL)
{
front=temp;
front->next=NULL;
rear=front;
}
else
{
front->next=temp;
front=temp;
front->next=NULL;
}
}

void display()
{
struct Node *var=rear;
if(var!=NULL)
{
printf("\nElements in queue are: ");
while(var!=NULL)
{
printf("\t%d",var->Data);
var=var->next;
}
printf("\n");
}
else
printf("\nQueue is Empty\n");
}

最佳答案

void delQueue()
{
while(rear != NULL) {
struct Node* var=rear->next;
free(rear);
count = count + 1;
rear = var; /* update rear */
}
front = NULL; /* clear the front */
}

关于c - 链表C编程之队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16369861/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com