在哪种情况下,在常规链接列表上使用队列比较可取?如果列表是单独的--或者是双链接的--则是无关紧要的。
发布于 2016-07-15 15:25:49
线性列表是由n个节点(可能为零节点)组成的序列,其中列表的基本结构属性是项目在一行中出现的相对位置。也就是说,对于任何给定的节点,我们只关心它的两个相邻的邻居,即前面的节点和下面的节点。
我们可能希望能够执行以下操作,
根据存储在结构中的数据,我们比应用程序中的其他操作更有可能执行某些操作。
线性列表中的插入、删除和对值的访问总是发生在第一个或最后一个节点上是常见的,因此,它们被赋予了特殊的名称。
队列是一个线性列表,所有插入都在列表的一端进行,所有删除和访问都在另一端进行。
链接列表通常为我们提供一组操作,使我们能够遍历整个结构并对每个节点(扩展为所有节点)执行操作。
根据它们提供的一组操作,这对对彼此是不同的。这两种做法传统上是以不同的方式实现的,因此它们各自的运作效率更高。
链接列表通常更适合用例--需要对列表中的任何节点进行读/写访问。
队列更适合于所谓的生产者/消费者情况,其中生产者和使用者以异步方式与数据结构交互,并且希望按照插入的顺序(即先入先出(FIFO) )使用数据结构中的项。
发布于 2016-07-07 17:58:17
队列是链接列表的特定组织。因此,当您想要暗示队列是使用数据的最佳方式时,使用队列是可行的。例如,如果不希望用户在不首先清空队列的情况下访问队列的下一项之外的数据,或者希望按队列添加时间顺序数据,则可能需要使用队列。
https://stackoverflow.com/questions/38238367
复制相似问题