| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 600 人关注过本帖
标题:队列的进出
只看楼主 加入收藏
寻梦飞翔
Rank: 1
等 级:新手上路
帖 子:76
专家分:9
注 册:2010-3-15
结帖率:94.12%
收藏
已结贴  问题点数:5 回复次数:5 
队列的进出
有点问题,麻烦高手们看一下:
#include <stdio.h>
#include <stdlib.h>
typedef struct QNode
{
   int data;
   struct QNode *next;
}QNode,*QueuePtr;
typedef struct Queue
{
   QueuePtr front;
   QueuePtr rear;
}*LinkQueue;
void InitQueue(LinkQueue Q)
{
   Q->front=Q->rear=(QNode *)malloc(sizeof(QNode));
   Q->front->next=NULL;
}
void EnQueue(LinkQueue Q,int e)
{
 QueuePtr p;
 p=(QueuePtr)malloc(sizeof(QNode));
 p->data=e;
 p->next=NULL;
 Q->rear->next=p;
 Q->rear=p;
}
int OuQueue(LinkQueue Q,int *e)
{
 QueuePtr p;
 p=Q->front->next;
 *e=p->data;
 Q->front->next=p->next;
 if(Q->rear=p)
 Q->rear=Q->front;
 return *e;
}
int QueueEmpty(LinkQueue Q)
{if(Q->front==Q->rear)
 return 1;
 else
 return 0;
}
main()
{ LinkQueue S;
  int a;
  InitQueue(S);
  scanf("%d",&a);
  while(!a)
  {
    EnQueue(S,a);
    scanf("%d",&a);
  }
  while(!QueueEmpty(S))
  {
    OuQueue(S,&a);
    printf("%4d",a);
  }
}
搜索更多相关主题的帖子: 进出 队列 
2010-04-05 19:30
hahayezhe
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖南张家界
等 级:贵宾
威 望:24
帖 子:1386
专家分:6999
注 册:2010-3-8
收藏
得分:0 
就一个字 晕!
2010-04-05 19:39
寻梦飞翔
Rank: 1
等 级:新手上路
帖 子:76
专家分:9
注 册:2010-3-15
收藏
得分:0 
能帮我解决一下问题吗?
2010-04-05 21:21
xichong
Rank: 7Rank: 7Rank: 7
来 自:四川南充
等 级:黑侠
威 望:2
帖 子:146
专家分:582
注 册:2009-6-10
收藏
得分:5 
#include <stdio.h>
#include <stdlib.h>
typedef struct QNode
{
   int data;
   struct QNode *next;
}QNode,*QueuePtr;
typedef struct Queue
{
   QueuePtr front;
   QueuePtr rear;
}*LinkQueue,QueueNode;
void InitQueue(LinkQueue Q)
{
   Q->front=Q->rear=(QNode *)malloc(sizeof(QNode));
   Q->front->next=NULL;
}
void EnQueue(LinkQueue Q,int e)
{
QueuePtr p;
p=(QueuePtr)malloc(sizeof(QNode));
p->data=e;
p->next=NULL;
Q->rear->next=p;
Q->rear=p;
}
int OuQueue(LinkQueue Q,int *e)
{
QueuePtr p;
p=Q->front->next;
*e=p->data;
Q->front->next=p->next;
if(Q->rear==p)//*********原来你是if(Q->rear=p),只有一个等号是错误的
Q->rear=Q->front;
free(p);
return *e;
}
int QueueEmpty(LinkQueue Q)
{if(Q->front==Q->rear)
return 1;
else
return 0;
}
main()
{ QueueNode S;//*************************LinkQueue S;说明S是指针变量,需要初始化后才能使用,否则在调用InitQueue(S)出错
  int a;
  InitQueue(&S);
  scanf("%d",&a);
  while(a>0)
  {
    EnQueue(&S,a);
    scanf("%d",&a);
  }
  while(!QueueEmpty(&S))
  {
    OuQueue(&S,&a);
    printf("%4d",a);
  }
}
2010-04-05 22:40
寻梦飞翔
Rank: 1
等 级:新手上路
帖 子:76
专家分:9
注 册:2010-3-15
收藏
得分:0 
谢谢楼上的
2010-04-06 12:23
易哓天
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:80
专家分:105
注 册:2010-9-20
收藏
得分:0 
学习

匈奴未灭,何以为家
2010-10-18 09:20
快速回复:队列的进出
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.025185 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved