回 帖 发 新 帖 刷新版面

主题:[讨论]怎么输出队列??

#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);
}
大家帮忙看一下啊,我写个一个程序,可以运行,但是输出的时候出现了问题。输出一些乱的数字,高手帮忙看看

回复列表 (共3个回复)

沙发

。。。

板凳

什么意思???

3 楼

你创建循环链表时好像有问题

我来回复

您尚未登录,请登录后再回复。点此登录或注册