我的程序有問題。我創建了一個鏈接列表隊列,當我用我的delQueue
函數清除隊列時,我的隊列消失了,我再也不能推動任何東西了。鏈表C編程隊列
我該如何解決這個問題?我的推送功能正常工作,除非我從隊列中刪除所有內容。
這裏是我的代碼:
#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");
}
當你'推'你正在更新'前'。當你推動時不應該更新'後部'?隊列先進先出...所以當你推動時,'後部'指針應該被更新。 – Bill 2013-05-04 02:16:18
非常感謝大家,您一直非常樂於助人。我非常感謝我在這裏收到的所有幫助,並且我肯定了解了很多關於隊列的知識。比你再次。上帝保佑你們所有人 – user2133160 2013-05-04 02:43:47
你應該接受你認爲最好回答你的問題的答案;) – Bill 2013-05-04 02:51:58