用C实现了链式存储的队列的创建,队列的插入,队列的删除以及打印队列。链式队列相对于数组队列来说,创建了两个指针分别指向队头和队列尾部。
typedef struct node{
int data
struct node *next
}node
typedef struct n{
struct node *front
struct node *rear
}linkq
linkq *buildq()
{
linkq *head=(linkq *)malloc(sizeof(linkq))
head->front=head->rear=NULL
return head
}
linkq *Insert(linkq *head)
{
linkq *ret=head
linkq *h=head
for(int i=0
{
node *s=(node *)malloc(sizeof(node))
s->data=i*i
s->next=NULL
if(h->front==NULL&&h->rear==NULL)
{
h->front=s
}else
{
h->rear->next=s
}
h->rear=s
}
return ret
}
linkq *Delete(linkq *head)
{
if(head->front==NULL&&head->rear==NULL)
{
printf("error!")
return 0
}else
{
node *s=head->front
head->front=s->next
free(s)
}
return head
}
void PrintQ(linkq *h)
{
node *s
s=h->front
for(
{
printf("%d->",s->data)
}
printf("\n")
}
int main()
{
linkq *q1=buildq()
linkq *qq1=Insert(q1)
PrintQ(qq1)
linkq *qqq=Delete(qq1)
PrintQ(qqq)
}