使用循环指针和尾指针构建双向链表有什么优缺点?哪种方法更适合构建deque?
在我看来,无论是使用循环指针还是尾指针构建双向链表,在搜索、插入和删除节点方面都没有太大区别。唯一不同的是,在使用尾指针的双向链表中,你需要让尾指针指向最后一个节点,并且每次在尾部插入新节点时都需要更新它。此外,在循环链表中,第一个节点与最后一个节点互相链接,而在尾指针中,头部的prev指针和尾部指针都指向空指针。
我认为两种方法都适用于构建deque。这完全取决于你想要程序如何运行。如果你希望程序能够快速地在头部和尾部节点之间移动,那么使用循环方法会更好,否则,尾指针应该已经足够了。
这就是我的答案。由于我还没有构建过任何循环双向链表,所以我没有任何关于它在机器上运行的经验,但我认为它的速度应该和尾指针一样快。有什么建议吗?感谢大家的意见。
在我看来,无论是使用循环指针还是尾指针构建双向链表,在搜索、插入和删除节点方面都没有太大区别。唯一不同的是,在使用尾指针的双向链表中,你需要让尾指针指向最后一个节点,并且每次在尾部插入新节点时都需要更新它。此外,在循环链表中,第一个节点与最后一个节点互相链接,而在尾指针中,头部的prev指针和尾部指针都指向空指针。
我认为两种方法都适用于构建deque。这完全取决于你想要程序如何运行。如果你希望程序能够快速地在头部和尾部节点之间移动,那么使用循环方法会更好,否则,尾指针应该已经足够了。
这就是我的答案。由于我还没有构建过任何循环双向链表,所以我没有任何关于它在机器上运行的经验,但我认为它的速度应该和尾指针一样快。有什么建议吗?感谢大家的意见。