在单个链接列表中恒定时间实现弹奏

Implementing Popback in constant time in a singly linked list

本文关键字:定时间 实现 单个 链接 列表      更新时间:2023-10-16

我想知道是否可能(应该是std :: list似乎是这样做)以单独实现popback()操作恒定时间中的链接列表,如何?

我假设我们存储了头和尾指针。在这种情况下,可以在恒定时间内轻松实现buckback(),pusprfront(),popfront()。但是无法想到在相同的运行时间内实现popback()的方法。

您无法在恒定时间内实现单个链接列表的pop_back。为此,您需要在最后一个元素的最后一个元素之前知道上一个元素,其中应包含对先前元素的引用。如果是这样,您将拥有一个双链接列表。

您可以在恒定时间内进行push_back。我对C 标准的建议之一是引入std::x_forward_list,以支持push_back成员功能。在这种情况下,您将能够使用这样的单个链接列表来模拟队列。