链表实现队列C语言写法

#include<iostream>
#include<cstdio>
#include<cstdlib>
using namespace std;
typedef struct node * qque;
struct node{
	int ele;
	node * next;
};
typedef struct queue * Que;
struct queue{
	qque front;
	qque tail;
};

Que Queinit()
{
	Que que=(Que)malloc(sizeof(queue));
	que->front=que->tail=0;
	return que;
}

bool QueEmpty(Que que)
{
	return que->front==0;
}


int QueFront(Que que)
{
	if(que->front)
	return que->front->ele;
	else {
		cout<<"wrong!!"<<endl;
		return -1; 
	} 
}


int QueLast(Que que)
{
	if(que->tail)
	return que->tail->ele;
	else {
		cout<<"wrong !!"<<endl;
		return -1;
	}
}


void PushQue(Que que,int x)
{
	qque q=(qque)malloc(sizeof(node));
	q->ele=x;
	q->next=NULL;
	if(que->front)
	{
		que->tail->next=q;
	}
	else
	{
		que->front=q;
	}
	que->tail=q;
}


void DeleteQue(Que que)
{
	que->front=NULL;
	que->tail=NULL;
}


void Pop(Que que)
{
	if(que->front)
	que->front=que->front->next;
	else cout<<"wrong!!!"<<endl;
}
原文地址:https://www.cnblogs.com/q1076452761/p/7658414.html