设计链式队列
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
using namespace std;
struct qnode{
int data;
qnode *next;
};
struct linkqueue{
qnode *front;
qnode *rear;
};
void initQueue(linkqueue &Q){//初始化队列
Q.front=Q.rear=NULL;
}
void enQueue(linkqueue &Q,int e){//入列
//qnode *p=(qnode*)malloc(sizeof(qnode)); //赋予新空间
qnode *p=new qnode;
p->data=e;
p->next=NULL;
if(Q.rear!=NULL){//如果队列中队尾不为空,继续按照插尾元素进去
Q.rear->next=p;
Q.rear=p;
}
else
Q.rear=Q.front=p;
}
bool queueEmpty(linkqueue Q){//是否为空
return Q.front==NULL?1:0;
}
int deQueue(linkqueue &Q){ //删除队头元素
qnode *p=Q.front;
int res=p->data;
Q.front=p->next;
delete p;
return res;
}
int getFront(linkqueue Q){
return Q.front->data;
}
int main(){
linkqueue Q;
initQueue(Q);
for(int i=1;i<=10;i++){
enQueue(Q,i);
}
while(!queueEmpty(Q)){
cout<<deQueue(Q)<<" ";
}
return 0;
}