FIFO队列的链表实现相对于循环数组实现来说简单些
出队在表头实现,入队在表尾实现
方案1:基于带有头结点的链表来创建队列
具体代码实现:
queue.h
typedef int Item;
void Queueinit();
int Queueempty();
void Queueput(Item);
Item Queueget();
void Queueprint();
queue.c
#include<stdlib.h>
#include<stdio.h>
#include"queue.h"
//链表操作,在表头出队,在表尾入队
typedef struct QueueNode *link;
struct QueueNode
{
Item item;
link next;
};
static link head,tail;
void Queueinit()
{
head=NULL;
tail=NULL;
}
int Queueempty()
{
return head==NULL;
}
void Queueput(Item i_tem)
{
// link newnode=(link)malloc(sizeof(struct QueueNode));
// if(!newnode)
// {
// printf("Insuffient memeory!\n");
// exit(0);
// }
// newnode->item=i_tem;
// newnode->next=head;
// head=newnode;
link newnode=(link)malloc(si