为了账号安全,请及时绑定邮箱和手机立即绑定

为什么以下链队,要分两个结构体来定义?

为什么以下链队,要分两个结构体来定义?

隔江千里 2022-06-12 14:10:12
数据结构队列问题:为什么链队 要分两个结构体来定义?在前边无论是学到的顺序表,还是单链表,还是链栈都是只定义了一个结构体,实在不明白,为什么链队要定义两个结构体?结构体(一)typedef struct qnode{int data;struct qnode *next;} QNode; /*链队结点类型*/(结构体二)typedef struct{QNode *front,*rear;} QuType; /*链队类型*/
查看完整描述

2 回答

?
尚方宝剑之说

TA贡献1788条经验 获得超4个赞

因为链队结构是一种运算受限的线性表,其限制是仅允许在表的一端进行插入,而在表的另一端进行删除。每个元素必然按照进入的次序离队,所以又把队列称为先进先出表。
链式队列存储结构也是通过由结点构成的单链表实现的。
在单链表中可以在表中的任何位置插入数据,不过在链队中,只能从末尾插入数据,从起始处删除。所以就需要一个结构来定义下一个节点的位置。
你可以将单链表理解为允许松散的队伍,它是允许插队的。
链队是有人管理的队伍,它有严格的要求,有一个管理者,不允许插队,管理者控制着队伍的进出。
一个结构体是管理者,一个结构体是队伍的起始和结束位置。

查看完整回答
反对 回复 2022-06-14
?
慕侠2389804

TA贡献1719条经验 获得超6个赞

typedef struct
{
QNode *front,*rear;
} QuType; /*链队类型*/

这个链表头吧,没有数据,只是作为链表的头

查看完整回答
反对 回复 2022-06-14
  • 2 回答
  • 0 关注
  • 542 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号