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

数据结构队列问题:为什么链队 要分两个结构体来定义?在前边无论是学到的顺序表,还是单链表,还是链栈都是只定义了一个结构体,实在不明白,为什么链队要定义两个结构体?

结构体(一)

typedef struct qnode
{
int data;
struct qnode *next;
} QNode; /*链队结点类型*/

(结构体二)

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

隔江千里
浏览 543回答 2
2回答

尚方宝剑之说

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

慕侠2389804

typedef struct{QNode *front,*rear;} QuType; /*链队类型*/这个链表头吧,没有数据,只是作为链表的头
打开App,查看更多内容
随时随地看视频慕课网APP