数据结构之队列的链式存储实现(6)

#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);
 }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值