队列操作

#include<stdio.h>
#include<stdlib.h>
struct Node{
	int data;
	struct Node *pointer;
};
struct Queue{
	struct Node *head;
	struct Node *tail;
};
struct Queue *Queue_Construct(void);
char Queue_Empty(struct Queue queue);
char Queue_Enqueue(struct Queue *pqueue,int a);
int Queue_Dequeue(struct Queue *pqueue);
void main()
{
	struct Queue *pqueue=Queue_Construct();
	Queue_Dequeue(pqueue);
	Queue_Enqueue(pqueue,4);
	Queue_Enqueue(pqueue,1);
	Queue_Enqueue(pqueue,3);
	Queue_Enqueue(pqueue,8);
	printf("%6d",Queue_Dequeue(pqueue));
	Queue_Enqueue(pqueue,10);
	printf("enqueue completed\n");
	while(Queue_Empty(*pqueue)!=1)
		printf("%6d",Queue_Dequeue(pqueue));
}
struct Queue *Queue_Construct(void)
{
	struct Queue *pqueue=(struct Queue *)malloc(sizeof(struct Queue));
	struct Node *pNode=(struct Node *)malloc(sizeof(struct Node));//造节点
	pqueue->head=pNode;
	pqueue->tail=pNode;
	return pqueue;
}
char Queue_Empty(struct Queue queue)
{
	if(queue.head==queue.tail)
		return 1;
	else return 0;
}
char Queue_Enqueue(struct Queue *pqueue,int a)
{
	struct Node *pNode=(struct Node *)malloc(sizeof(struct Node));//造节点	
	pNode->pointer=NULL;
	pqueue->tail->data=a;
	pqueue->tail->pointer=pNode;
	pqueue->tail=pNode;
	return 1;
}
int Queue_Dequeue(struct Queue *pqueue)
{
	int temp;
	struct Node *pNode=pqueue->head;
	if(!Queue_Empty(*pqueue)){
	temp=pNode->data;
	pqueue->head=pNode->pointer;
	free(pNode);
	return temp;
	}
	else{
	printf("Sorry,but the queue is empty");
	}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值