主题:[讨论]怎么输出队列??
#include <stdio.h>
#include <malloc.h>
typedef struct Node
{
int data;
struct Node *next;
}SLNode;
typedef struct
{
SLNode *rear;
}LinkQueue2;
void InitQueue(LinkQueue2 *Q)
{
Q->rear=(SLNode *)malloc(sizeof(SLNode));
Q->rear->next=Q->rear;//够成循环单连表
}
void EnQueue(LinkQueue2 *Q,int x)
{
SLNode *p;
p=(SLNode *)malloc(sizeof(SLNode));
p->data=x;
p->next=Q->rear->next;
Q->rear->next=p;
Q->rear=p;
}
int DeleQueue(LinkQueue2 *Q,int *x)
{
SLNode *front ,*p;
front=Q->rear->next;
if(front->next==front)
{
printf("\n Error : the queue is empty \n");
return 0;
}
p=front->next;
*x=p->data;
front->next=p->next;
if(front->next==front)
Q->rear=front;
free(p);
return 1;
}
void print(LinkQueue2 *Q)
{
SLNode *l;
l=Q->rear->next;
while(l->next!=l)
{
printf("%d",l ->data);
}
}
void main()
{
LinkQueue2 LQ;
int j,x;
InitQueue(&LQ);
printf("please input a integer :");
scanf("%d",&j);
while(j!=0)
{
// if(j%2==1)
EnQueue(&LQ,j);
// else
// DeleQueue(&LQ,&x);
// print(&LQ);
printf("please input a integer ");
scanf("%d",&j);
}
print(&LQ);
}
大家帮忙看一下啊,我写个一个程序,可以运行,但是输出的时候出现了问题。输出一些乱的数字,高手帮忙看看
#include <malloc.h>
typedef struct Node
{
int data;
struct Node *next;
}SLNode;
typedef struct
{
SLNode *rear;
}LinkQueue2;
void InitQueue(LinkQueue2 *Q)
{
Q->rear=(SLNode *)malloc(sizeof(SLNode));
Q->rear->next=Q->rear;//够成循环单连表
}
void EnQueue(LinkQueue2 *Q,int x)
{
SLNode *p;
p=(SLNode *)malloc(sizeof(SLNode));
p->data=x;
p->next=Q->rear->next;
Q->rear->next=p;
Q->rear=p;
}
int DeleQueue(LinkQueue2 *Q,int *x)
{
SLNode *front ,*p;
front=Q->rear->next;
if(front->next==front)
{
printf("\n Error : the queue is empty \n");
return 0;
}
p=front->next;
*x=p->data;
front->next=p->next;
if(front->next==front)
Q->rear=front;
free(p);
return 1;
}
void print(LinkQueue2 *Q)
{
SLNode *l;
l=Q->rear->next;
while(l->next!=l)
{
printf("%d",l ->data);
}
}
void main()
{
LinkQueue2 LQ;
int j,x;
InitQueue(&LQ);
printf("please input a integer :");
scanf("%d",&j);
while(j!=0)
{
// if(j%2==1)
EnQueue(&LQ,j);
// else
// DeleQueue(&LQ,&x);
// print(&LQ);
printf("please input a integer ");
scanf("%d",&j);
}
print(&LQ);
}
大家帮忙看一下啊,我写个一个程序,可以运行,但是输出的时候出现了问题。输出一些乱的数字,高手帮忙看看