gpt4 book ai didi

c - 如何通过链表编写dequeue的函数dequeue

转载 作者:行者123 更新时间:2023-11-30 16:27:28 25 4
gpt4 key购买 nike

我正在尝试通过链表编写队列的函数出队

请帮帮我,我被困住了。减去雕像真是太漂亮了!

http://codepad.org/9kAnwY0w你可以找到代码:

最佳答案

您使用单链表,因此仅从头部出列。

如果要从尾部弹出,则需要使用双向链表

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

typedef struct aNODE {
int data;
struct aNODE * pNext;
} NODE;

NODE *rear, *front;
int count;

void initQueue()
{
rear = NULL;
front = NULL;
count = 0;
}


void enqueue(int data)
{
NODE* newNode = (NODE *) malloc( sizeof(NODE) );
newNode->pNext = NULL;
newNode->data = data;

/* TH1. Queue ban dau rong */
if ( count == 0 )
{
front = newNode;
rear = newNode;
count++;
} else { /* TH2. Khac rong */
rear->pNext = newNode;
rear = newNode;
count++;
}
}


NODE* dequeue()
{
if (!front)
{
return(NULL);
}

NODE* tmp = front;
front = front->pNext;
count--;
return(tmp);
}

int size()
{
return(count);
}

int main()
{
initQueue();
printf("size %d\n", size());
for (int i = 0; i < 100; i++)
{
enqueue(i + 1);
}

printf("size %d\n", size());

for (int i = 0; i < 50; i++)
{
dequeue();
}

printf("size %d\n", size());

return(0);
}

关于c - 如何通过链表编写dequeue的函数dequeue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52719687/

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