网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
03月07日漏签0天
编程吧 关注:374,300贴子:1,638,216
  • 看贴

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 0回复贴,共1页
<<返回编程吧
>0< 加载中...

C语言写的链队,没有语法错误,但入队不了,会的来看下。

  • 只看楼主
  • 收藏

  • 回复
  • hhtts123
  • 高级粉丝
    3
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
#include "stdio.h"
#include "stdlib.h"
typedef char datatype; typedef struct LNode{
datatype data;
struct LNode *next;
}QType; //对头尾指针
typedef struct{
QType *front;
QType *rear;
}Linkqueue;
void InitQueue(Linkqueue *qu)//初始化队列
{ QType *s;
qu=(Linkqueue * )malloc(sizeof(Linkqueue));
s=(QType *)malloc(sizeof(QType));
s->next=NULL;
qu->rear=qu->front=s;
}
int Enqueue(Linkqueue *qu, datatype x)
{ QType *s;
s=(struct LNode * )malloc(sizeof(QType));
s->data=x;s->next =NULL;
if(qu->rear==qu->front)
qu->rear=qu->front->next=s;
else
{
qu->rear->next=s;
qu->rear=s;
}
return 1;
}
int DeQueue(Linkqueue *sq, datatype *x)//出对运算算法
{ QType *p;
if(sq->rear==NULL&&sq->front==NULL)
return 0;
p=sq->front;
*x=p->data;
if(sq->rear==sq->front) //只有一个结点
sq->rear=sq->front=NULL;
else
{sq->front=sq->front->next;
free(p);
}
return 1;
}
int GetHead(Linkqueue *sq, datatype *x)//取对头元素运算方法
{if(sq->rear==sq->front)
return 0;
*x=sq->front->data;
return 1;
}
int QueueEmpty(Linkqueue sq){//判断是否为空
if(sq.rear==sq.front)
return 1;
else
return 0;} void Traversal_SqQueue(Linkqueue q){
QType *t;t=q.front->next;
while(t)
{
printf("%c",t->data);t=t->next;
}printf("\n");} //遍历
void main()
{Linkqueue sq; int i=0;datatype a[]="abcdefgh",x,*e=NULL,*h=NULL;
InitQueue(&sq);
while(a[i])
{
if(Enqueue(&sq,a[i]))
printf("入队失败.\n");
i++;}
printf("队列的初始状态为:\n");
Traversal_SqQueue(sq);
if(!(DeQueue(&sq, e)))
printf("出队失败。\n");
else
printf("%c出队后,队列为:\n",x);
Traversal_SqQueue(sq);
x='f';
{if(!(Enqueue(&sq,x)))
printf("入队失败.\n");
else
printf("%c入队后,队列为:\n",x);
Traversal_SqQueue(sq);
if(!(DeQueue(&sq,e)))
printf("出队失败\n");
else
printf("%c出队后,队列为:\n", *e);
Traversal_SqQueue(sq);} if(!(GetHead(&sq, h)))
printf("队空。\n");
else
printf("取队头元素%c后,队列为:\n",*h);
Traversal_SqQueue(sq);
}
没有语法错误,运行时不能入队。
由于自己写的,找了半天没找到哪出错,会的来帮忙看下


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 0回复贴,共1页
<<返回编程吧
分享到:
©2026 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示