|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include<stdio.h>
#include<stdlib.h>
typedef int ElemType;
#define N 10
typedef struct Line
{
ElemType data;
struct Line *next;
}Node,*QNode;
typedef struct{
QNode front;
QNode rear;
}Queue;
int InitQueue(Queue *q)
{
q->front=q->rear=(QNode)malloc(sizeof(struct Line));
if(!q->front)
{
exit(0);
}
q->front->next=NULL;
return 0;
}
void Push(Queue *q,ElemType e)
{
QNode k;
k=(QNode)malloc(sizeof(struct Line));
if(!k)
{
exit(0);
}
k->data=e;
k->next=NULL;
q->rear->next=k;
q->rear=k;
}
void Pop(Queue *q,ElemType *e)
{
if(q->front==q->rear)
{
exit(0);
}
QNode k;
k=q->front->next;
*e=k->data;
q->front->next=k->next;
if(q->rear==k)
{
q->rear=q->front;
}
free(k);
}
void Destroy(Queue *q)
{
while(q->front){
q->rear=q->front->next;
free(q->front);
q->front=q->rear;
}
}
void main()
{
Queue *q;
int i,e;
InitQueue(&q);
printf("输入你想输入的数:\n");
for(i=0;i<N;i++)
{
scanf("%d",&e); //我感觉这里有问题,但不知道哪里错了,求解答。
Push(&q,e);
}
printf("输出结果为:");
for(i=0;i<N;i++)
{
Pop(&q,&e);
printf("%d ",e);
}
} |
|