数据结构队列问题:为什么链队 要分两个结构体来定义?在前边无论是学到的顺序表,还是单链表,还是链栈都是只定义了一个结构体,实在不明白,为什么链队要定义两个结构体?结构体(一)typedef struct qnode{int data;struct qnode *next;} QNode; /*链队结点类型*/(结构体二)typedef struct{QNode *front,*rear;} QuType; /*链队类型*/
2 回答

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

慕侠2389804
TA贡献1719条经验 获得超6个赞
typedef struct
{
QNode *front,*rear;
} QuType; /*链队类型*/
这个链表头吧,没有数据,只是作为链表的头
添加回答
举报
0/150
提交
取消