#include<iostream>
#include "stdlib.h"
#include<cmath>
using namespace std;
typedef char ElemType;
struct QNode
{
QNode *next;
ElemType data;
};
typedef QNode *QueuePtr;
struct LinkQueue
{
QueuePtr front,rear;
};
void InitQueue(LinkQueue *q)//队列初始化
{
q->front=q->rear=(QueuePtr)malloc(sizeof(QNode));
if(!q->front)
exit(0);
q->front->next=NULL;
}
void InsertQueue(LinkQueue *q,ElemType e)//队列插入
{
QueuePtr p;
p=(QueuePtr)malloc(sizeof(QNode));
if(p==NULL)
exit(0);
p->data=e;
p->next=NULL;
q->rear->next=p;
q->rear=p;
}
void DeleteQueue(LinkQueue *q,ElemType *e)//队列删除
{
QueuePtr p;
p=q->front->next;
*e=p->data;
q->front->next=p->next;
if(q->rear==p)
q->rear=q->front;
free(q);
}
void printQueue(LinkQueue *q)//队列打印
{
QueuePtr p;
p=q->front->next;
while(p!=NULL)
{
printf("%c",p->data);
p=p->next;
}
}
void Destroy(LinkQueue *q)//队列销毁
{
while(q->front)
{
q->rear=q->front->next;
free(q->front);
q->front=q->rear;
}
}
void main()
{
char c;
LinkQueue q;
InitQueue(&q);
printf("请任意输入一串字符:");//编写一个链队列,任意输入一串字符串,打印出队列中元素
scanf("%c",&c);
while(c!='#')
{
InsertQueue(&q,c);
scanf("%c",&c);
}
printQueue(&q);
cout<<endl;
}