在单个链接列表中恒定时间实现弹奏
Implementing Popback in constant time in a singly linked list
我想知道是否可能(应该是std :: list似乎是这样做)以单独实现popback()操作恒定时间中的链接列表,如何?
我假设我们存储了头和尾指针。在这种情况下,可以在恒定时间内轻松实现buckback(),pusprfront(),popfront()。但是无法想到在相同的运行时间内实现popback()的方法。
您无法在恒定时间内实现单个链接列表的pop_back
。为此,您需要在最后一个元素的最后一个元素之前知道上一个元素,其中应包含对先前元素的引用。如果是这样,您将拥有一个双链接列表。
您可以在恒定时间内进行push_back
。我对C 标准的建议之一是引入std::x_forward_list
,以支持push_back
成员功能。在这种情况下,您将能够使用这样的单个链接列表来模拟队列。
相关文章:
- 如果没有malloc,链表实现将失败
- boost::进程间消息队列引发错误
- Qt.中线程间通信的实现
- c++实现定时回调函数
- 在Qt中实现精确定时器
- 跨平台C++高精度事件定时器实现
- 是否有在C++和Javascript中实现的高级进程间通信API
- 在 Windows 上的 C++ 中实现强大、简单(且快速)的进程间通信
- 在Linux中用C++实现一个低开销的间隔定时器
- 如何在c++中为每个对象实现定时器
- C++用线程间通信实现线程
- c++定时器实现-将一个成员函数分配给信号回调函数指针
- 并提高.进程间牺牲性能来实现可移植性
- c++实现的一个邮箱,用于线程间通信
- std::互斥量是否足以实现线程间的数据同步?
- 需要帮助在c++中实现定时器/报时器类
- 如何用c++在windows上实现长期高分辨率定时
- 实现线程间同步屏障的最佳方法是什么?
- Boost::asio如何实现定时数据包发送功能
- 如何在标准c++中实现重复的定时回调