链队列操作改错。C语言数据结构。模拟键盘输入循环缓冲区。代码有点多,不要不耐烦。错误很多。

/*队列练习2012-6-24日*/#include<stdio.h>#include<stdlib.h>#include<malloc.h>#defineMAXtype... /*队列练习
2012-6-24 日
*/

#include<stdio.h>
#include <stdlib.h>
#include<malloc.h>
#define MAX
typedef struct{
char s;
struct node *next;
}node;
typedef struct{
struct node *front;
struct node *rear;
}Queue;
Queue *Init_Queue(Queue *x)
{
node *y;
y=malloc(sizeof(node));
y->next=NULL;
x->front=y;x->rear=y;
return x;
}
void In_Queue(Queue *x,char y)
{
node *p;
p=malloc(sizeof(node));
p->next=NULL;
p->s=y;
x->rear->next=p;
x->rear=p;
}
int Empty_Queue )(Queue *q)
{
if(q->front==q->rear) return 0;
else return 1;
}
int Out_Queue(Queue *q,char *x)
{
node *p;
if(Empty_Queue){printf("队空!");return 0;}
else{
p=q->front->next;
q->front->next=p->next;
*x=p->s;
free(p);
if(q->front->next=NULL) q->rear=q->front;
return 1;
}
}
main()
{
Queue Q;
Init_Queue(&Q);
}
第一个错误提事就是incompatible types - from 'struct node *' to 'struct node *'。这里不知道怎么处理了,后面的也是。请高人指教。不过,也许这个问题不太高级。。。。
为了节省篇幅,直接把主要部分代码去掉了,因为链队列的操作都是书上源码,不知道怎么会出错。错了更好,反正我也不赞成书上的写法。
展开
 我来答
夜中摩羯
2012-06-25 · TA获得超过135个赞
知道小有建树答主
回答量:196
采纳率:0%
帮助的人:175万
展开全部
分配空间时 p=(node *)malloc(sizeof(node)); 强转下
int Empty_Queue (Queue *q) //多了半边括号
{
if(q->front==q->rear) return 0; // 判断有问题 如果只有一个节点不为空但是q->front==q->rear
else return 1;
}
int Out_Queue(Queue *q,char *x)
{
node *p;
if(Empty_Queue){printf("队空!");return 0;}
else{
p=q->front->next; /// p=q->front;
q->front->next=p->next;
*x=p->s;
free(p);
if(q->front->next=NULL) q->rear=q->front; /// 条件判断少了个等号吧 这句是干嘛?如果是判断只有一个节点的出队情况应放在前面去判断吧
return 1;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
威孚半导体技术
2024-08-19 广告
威孚(苏州)半导体技术有限公司是一家专注生产、研发、销售晶圆传输设备整机模块(EFEM/SORTER)及核心零部件的高科技半导体公司。公司核心团队均拥有多年半导体行业从业经验,其中技术团队成员博士、硕士学历占比80%以上,依托丰富的软件底层... 点击进入详情页
本回答由威孚半导体技术提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式