使用循环指针和尾指针构建双向链表的优点/缺点是什么?哪一个更适合建立一个deque?循环双向链表和尾指针双向链表
从我的观点来看,他们在做所有搜索,插入和删除节点方面基本相同。唯一不同的是,对于尾指针双链表,您需要将尾指针指向最后一个节点,并且每次在尾部之后插入新节点时都需要更新它。此外,在循环链表中,第一个节点链接到最后一个节点,反之亦然,而在尾指针中,head-> prev和tail->指向空指针。 我认为他们都是建立一个deque的greate。这一切都取决于你希望你的程序运行的方式。如果你希望你的程序能够快速地在头尾节点之间来回运行,使用循环方式,否则尾指针应该足够。
这是我对这个问题的回答。由于我还没有建立任何循环双向链表,我没有任何关于它在机器上运行的经验,但我怀疑它会像尾指针一样快。任何建议?并感谢大家的投入。
什么是算法之前和头部的圆形双重链接后插入节点列表?他们不一样吗?因为在一个循环链表中,你根本没有跟踪尾部,最后一个节点可以连接到第一个节点,反之亦然> –
在任何地方插入节点的算法都是一样的,你需要一个'prev'参数后插入。首先插入,你通过'头'。要插入最后一个,你传递'head.prev'。插入函数必须更新前一个的'next'指针,下一个'prev'指针,并设置插入节点的next/prev指针。任务完成。 –
非常感谢你! –