上次我们用 顺序表 的形式来构造了一个队列,通过对列的特性:先进先出 及到最后的扩容操作我们大致实现了一个队列的所有结构和操作。但是对于队列的结构其实还有另外一种构造方法!!!那就是通过链表的基本结构来定义队列。
用链表的结构来定义队列的好处:
①.我们不在进行写所谓的扩容操作【因链表的结构本身就不需要扩容】。
②.整体来说,用链表构造的队列比用顺序表构造的队列对空间的利用率更高【记住行,是整体来说,如果储存少量数据的话,还是顺序表占的空间更小一点!!!因链表本身对数据的存储需要更大的空间】
废话不多说,咱直接上干货:
【首先,我们要对相关节点信息进行定义,因为是消息队列,所以我们定义的是静态的字符数组】
【其次,我们要定义队列,包括:定义虚拟头 ,定义尾指针 ,长度】
【然后,我们就要初始化节点信息,我们传进来字符串,给它动态的申请空间,然后将传进来的字符串拷贝进去,最后是初始化空地址】
【这个是初始化队列】
【然后就是入队操作,我们传进来队列和传进来入队的字符串内容,定义一个指针Node,然后将新节点地址插入尾部,将指针Next指向尾部】
【这个是出队操作,可以看到这里有一个判空操作,我在下面定义】
【这个是判空操作!!!】
【这个是打印新的节点!!!】
【这个是清空操作,传进来对列,如果当前队列不存在的话,我什么也不干,队列的头下一个点,然后tmp进入头下一个节点,释放掉当前队列(free)】
【这上面几幅图是我主函数的构造过程!!!】
【这个是输入操作!!!】
--结束--