队列的应用|一路上

队列的应用–舞伴问题 1、问题叙述 假设在周末舞会上,男士们和女士们进入舞厅时,各自排成一队。跳舞开始时,依次从男队和女队的队头上各出一人配成舞伴。若两队初始人数不相同,则较长的那一队中未配对者等待下一轮舞曲。现要求写一算法模拟上述舞伴配对问题。 2、问题分析 先入队的男士或女士亦先出队配成舞伴。因此该问题具体有典型的先进先出特性,可用队列作为算法的数据结构。 在算法中,假设男士和女士…

栈的应用|一路上

栈和队列的应用非常之广,只要问题满足后进先出和先进先出原则,均可使用栈和队列作为其数据结构。 栈的应用 1、 数制转换 将一个非负的十进制整数N转换为另一个等价的基为B的B进制数的问题,很容易通过”除B取余法”来解决。 【例】将十进制数13转化为二进制数。 解答:按除2取余法,得到的余数依次是1、0、1、1,则十进制数转化为二进制数为1101。 分析:由于最先得到的余数是转…

链队列|E路上

链队列 1、 链队列的定义    队列的链式存储结构简称为链队列。它是限制仅在表头删除和表尾插入的单链表。 2、 链队列的结构类型说明 注意: 增加指向链表上的最后一个结点的尾指针,便于在表尾做插入操作。 链队列示意图见上图,图中Q为LinkQueue型的指针。 3、 链队列的基本运算 (1) 置空队 void InitQueue(LinkQueue *Q) { Q->front=Q-&gt…

顺序队列-循环队列|E路上

顺序队列 1、顺序队列 (1)顺序队列的定义    队列的顺序存储结构称为顺序队列,顺序队列实际上是运算受限的顺序表。 (2) 顺序队列的表示 ①和顺序表一样,顺序队列用一个向量空间来存放当前队列中的元素。 ②由于队列的队头和队尾的位置是变化的,设置两个指针front和rear分别指示队头元素和队尾元素在向量空间中的位置,它们的初值在队列初始化时均应置为0。 (3) 顺序队列的基本操作 ①入队时:…