标题:[求助]关于进队出队问题
只看楼主
没牙的狼
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2006-4-23
 问题点数:0 回复次数:2 
[求助]关于进队出队问题

#include<stdio.h>
#include<stdlib.h>
typedef struct Node
{
int data;
struct Node *next;
}NodeQueue;
typedef struct Link
{
NodeQueue *front;
NodeQueue *rear;
}LinkQueue;
int CreatLinkQueue(LinkQueue *Q)
{
Q=(LinkQueue*)malloc(sizeof(LinkQueue));
Q->front=(NodeQueue*)malloc(sizeof(NodeQueue));
if(Q!=NULL)
{
Q->rear=Q->front;
Q->front->next=NULL;

return 1;
}

else
return 0;
}
void EnterQueue(LinkQueue *Q)
{
int c,flag;
NodeQueue *node;
printf("进队\n");
while(flag)
{
scanf("%d",&c);
if(c!=0)
{
node=(NodeQueue*)malloc(sizeof(NodeQueue));
node->data=c;
node->next=NULL;
Q->rear->next=node;
Q->rear=node;
flag=1;

}

else
flag=0;
}

}
int DeleteQueue(LinkQueue *Q)
{
LinkQueue *q;
if(Q->front==Q->rear)
return 0;
q=Q;
while(q->front->next!=NULL)
{
q->front=q->front->next;
printf("\n%d",q->front->data);
}
return 1;
}
void main()
{
LinkQueue *Q;
Q=(LinkQueue*)malloc(sizeof(LinkQueue));
CreatLinkQueue(Q);
EnterQueue(Q);
DeleteQueue(Q);
}
输入数据进不去,请帮忙看看,谢谢...运行环境vc++6.0





[此贴子已经被作者于2007-1-3 1:13:56编辑过]

搜索更多相关主题的帖子: front NodeQueue LinkQueue rear struct 
2007-01-03 01:11
soft_wind
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:1430
专家分:0
注 册:2006-4-5
得分:0 
#include<stdio.h>
#include<stdlib.h>
typedef struct Node
{
int data;
struct Node *next;
}NodeQueue;
typedef struct Link
{
NodeQueue *front;
NodeQueue *rear;
}LinkQueue;
LinkQueue* CreatLinkQueue()
{
LinkQueue *Q=(LinkQueue*)malloc(sizeof(LinkQueue));
Q->front=(NodeQueue*)malloc(sizeof(NodeQueue));
if(Q->front == NULL)
{
printf("Oh no!");
exit(1);
}
if(Q!=NULL)
{
Q->rear=Q->front;
Q->front->next=NULL;

return Q;
}

else
return NULL;
}
void EnterQueue(LinkQueue *Q)
{
int c,flag;
NodeQueue *node;
printf("进队\n");
while(flag)
{
scanf("%d",&c);
if(c!=0)
{
node=(NodeQueue*)malloc(sizeof(NodeQueue));
node->data=c;
node->next=NULL;
Q->rear->next=node;
Q->rear=node;
flag=1;

}

else
flag=0;
}

}
int DeleteQueue(LinkQueue *Q)
{
LinkQueue *q;
NodeQueue*p;
if(Q->front==Q->rear)
return 0;
q=Q;
while(q->front->next!=NULL)
{
p=q->front;
q->front=q->front->next;
printf("\n%d",q->front->data);
free(p);
}
return 1;
}
int main()
{
LinkQueue *Q;
Q=CreatLinkQueue();
EnterQueue(Q);
DeleteQueue(Q);
return 0;
}
改了你程序上的错误,
不过,你对进队和出队的理解似乎有些问题,
你写的这两个操作称为队列初始化和队列清空比较合适。
建议你再去看看数据结构书。

对不礼貌的女生收钱......
2007-01-03 12:23
没牙的狼
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2006-4-23
得分:0 

谢谢楼上的同学,看来我还要好好看看书了


2007-01-03 14:00



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-113846-1-1.html




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

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