字符入队列,再输出,为什么输出不了
#include<stdio.h>#include<stdlib.h>
typedef char Elemtype;
typedef struct QNode //定义队列中的一个结点结构,包含一个数据和指向下一个结点的指针
{
Elemtype data;
struct QNode *next;
}QNode,*QueuePtr;
typedef struct //定义队列结构
{
QueuePtr front,rear;
}LinkQueue;
void InitQueue(LinkQueue *q) //函数,用于初始化一个队列
{
q->front=q->rear=(QueuePtr)malloc(sizeof(QNode));
q->rear->next=NULL;
}
void InsertQueue(LinkQueue *q,Elemtype e) //函数,用于入队列操作
{
QueuePtr p;
p=(QueuePtr)malloc(sizeof(QNode)); //创建一个新结点
p->data=e;
p->next=NULL;
q->rear->next=p;
q->rear=p; //队列尾指针进行移动
}
void DeleteQueue(LinkQueue *q,Elemtype *e) //函数,用于出队列操作
{
QueuePtr p;
if(q->front=q->rear) //如果为空队列,返回
{
return;
}
p=q->front->next;
*e=p->data;
q->front->next=p->next;
if(q->rear==p) //如果队列只剩下最后一个元素,则该元素出队列后,尾指针指向头结点
{
q->rear=q->front;
}
free(p);
}
int main()
{
LinkQueue q;
Elemtype c,e;
InitQueue(&q);
printf("请输入要显示的内容,以#作为结束标志:");
scanf("%c",&c);
while(c!='#') //字符入队列
{
InsertQueue(&q,c);
scanf("%c",&c);
}
while(q.front!=q.rear) //字符出队列
{
DeleteQueue(&q,&e);
printf("%c",e);
}
printf("\n");
return 0;
} 我知道了,原来是‘==’打成了‘=’。。。。
页:
[1]