#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
typedef int type;
typedef struct Node
{
type info;
struct Node*next;
}node;
//队列声明,保存头指针,尾指针
typedef struct
{
node *front;
node *rear;
}queue;
//初始化一个空队列并返回其指针
queue* init()
{
queue *head=(queue*)malloc(sizeof(queue));
head->front=head->rear=NULL;
}
//打印一个队列
void display(queue*head)
{
node *p=head->front;
while(p){
printf("%5d",p->info);
p=p->next;
}
printf("\n");
}
//入队
void insert(queue*head)
{
node*pre;
pre=(node*)malloc(sizeof(node));
pre->next=NULL;
scanf("%d",&pre->info);
if(!head->front)//如果是空队列,则front和rear指针指向该节点
head->front=head->rear=pre;
else{//否则,在尾部插入
head->rear->next=pre;
head->rear=pre;
}
}
//销毁一个队列
void destory(queue*head)
{
node*pre=head->front,*p;
while(pre)
{
p=pre->next;
free(pre);
pre=p;
}
free(head);
}
//出队
void dele(queue *head)
{
node*p;
if(!head->front)
printf("NULL\n");
else{//非空队列
p=head->front;
head->front=p->next;
free(p);
if(!head->front)//如果是删除了最后一个节点,队列置空
head->rear=NULL;
}
}
//建立一个长度为n的队列
void create(queue *head,int n)
{
int i;
for(i=1;i<=n;i++)
insert(head);
}
链队
最新推荐文章于 2019-04-07 18:13:00 发布