#include<stdio.h>
#include<malloc.h>
typedef struct LinkNode{
int data;
struct LinkNode *next;
}LinkNode;
typedef struct{
LinkNode *front;
LinkNode *rear;
}LinkQueue;
void InitQueue(LinkQueue & Q){
Q.front=Q.rear=(LinkNode *)malloc(sizeof(LinkNode));//建立头结点
Q.front->next=NULL;
}
bool isEmpty(LinkQueue Q){//判断是否为空
if(Q.front==Q.rear){
printf("队列为空\n");
return true;}
else return false;
}
void enQueue(LinkQueue & Q,int a){
LinkNode *S=(LinkNode *)malloc(sizeof(LinkNode));//创建一个结点
S->data=a;
S->next=NULL;
Q.rear->next=S;
Q.rear=S;
}
void deQueue(LinkQueue & Q,int a){
if(!isEmpty(Q)){
LinkNode *temp;
temp=Q.front->next;
a=temp->data;
printf("%d\n",a);
Q.front->next=temp->next;
if(Q.rear==temp)
Q.rear=Q.front;//如果原来只有一个结点;
free(temp);
}
}
void main(){
LinkQueue Q;
int a;
InitQueue(Q);
scanf("%d",&a);
while(a!=-1000){
if(a==1000) //输入1000出队列
deQueue(Q,a);
else enQueue(Q,a);
scanf("%d",&a);
}
}
数据结构之队列的链式存储实现(6)
最新推荐文章于 2023-01-02 18:38:24 发布