|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include<stdio.h>
#include<stdlib.h>
#include<string.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));
if(!q->front)
exit(0);
q->front->next=NULL;
}
//入队,p加入这个队列
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;
}
//出队列操作出队列操作是将队列中的第一个元素移出,队头指针不发生改变,改变头结点的next指针即可。
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);
}
//销毁一个队列
void DestroyQueue(LinkQueue *q)
{
while(q->front)
{
q->rear=q->front->next;
free(q->front);
q->front=q->rear;
}
}
int main()
{
QueuePtr s;
ElemType c;
char x [100];
initQueue(&s);
printf("输入任意一串字符,以#作为结束标志\n");
scanf("%s",x);
while(c!='#')
{
printf("%c",x);
}
printf("\n");
return 0;
}
LinkQueue s;
char x [100];
initQueue(&s);应该这样定义
|
|