我可以在循环双向链表中添加新标题吗?

时间:2017-07-10 15:37:36

标签: algorithm data-structures

我刚刚对数据结构和算法进行了评估。我的老师说在标题之前添加新节点是不可能的。我到处检查过(在互联网和书籍上),所有人都说这是可能的。

所以现在我的问题是,谁在这里?

编辑:这是情况图,添加我需要插入新节点的红色箭头。

http://imgur.com/F5qJ7JN

2 个答案:

答案 0 :(得分:3)

您可以轻松地(在一个步骤中)添加第一个元素,甚至可以添加到常用链接列表或双链接列表。你是对的。

  • 新元素将获得指向旧第一个元素的指针。
  • 对于双链表,旧的第一个元素也会返回对新元素的引用。
  • 新元素成为第一个元素,并作为列表进行处理。

但要非常柔软,小心地告诉老师他/她的错误。也许:"你的意思是真的在非循环双向链表中一步插入最后一个元素,不是吗?" :-)我希望,你老师不是那种容易冒犯复杂句子的人。

对于循环双向链表,您可以在一个步骤中插入最后一个元素或第一个元素。对于头部插入:

  • 一个新元素引用旧的第一个和后一个引用(从旧的头部引用引用)
  • Old首先将其后引用更改为新的第一个
  • 最后更改了对新第一个的引用。
  • Head(如果你有一个没有数据且不是节点的特殊内容)将引用更改为新的第一个。 编辑 根据您的图片,您没有这样的事情。

您还可以将任何元素插入任何列表中,但是可能需要从一个元素移动到另一个元素,以便到达该位置。

<强> 修改 也许,你的老师真的意味着从外部引用循环列表并且没有自己的数据的特殊引用。它可以存在一些特殊需要。在标题之前将放入列表的问题根本没有意义 - 因为标题不属于结构中之前的那个部分。第一个元素之前的元素不在列表之外,但它是列表的最后一个元素。

当然,标题可以引用它。标题只是一个引用,它可以有标题的另一个标题&#34;等等。

Big fleas have little fleas,
Upon their backs to bite 'em,
And little fleas have lesser fleas,
and so, ad infinitum.

只有人类意志行为或某些技术或宗教限制才能禁止引用参考文献。

所以,如果问题(如何在标题之前放置一些东西)有意义,那么在&#34;之前的单词&#34; for header必须被解释为&#34;引用&#34;,我们可以在它之前添加一些东西。如果&#34;之前&#34;仅为列表节点定义,问题本身毫无意义。

答案 1 :(得分:0)

链接列表是动态的,意味着它的大小没有限制,您可以在任何地方输入节点,这是链表的众多优势之一。您的老师可能没有谈论链表可能是循环队列,否则她就错了。