计算机科学

线性数据结构

链表 - 中级

双向链表是不是仅仅插入和移除从列表的头部和尾部元素更加有用。他们可以维护元素的列表,允许插入和取出,以列表的内部

给定一个节点 V. V. 双向链表(这是目前随后的 W. W. ),我们要插入一个新节点 Z. Z. 之后立马 V. V. 。具体而言,我们要编写一个函数插入(五)这需要一个节点, V. V. 和插入新节点之后 V. V. 。结果应该是一个列表,其中 V. V. s下一个指着 Z. Z. Z. Z. s下一个指着 W. W. W. W. s上一个指着 Z. Z. , 和 Z. Z. s上一个指着 V. V.

如果我们以错误的顺序执行这些事件,我们可以擦除会破坏列表的关键信息。应该如何以下步骤进行排序,使他们正确地插入,在一个双向链表中的一个节点?

  • 一种制作 Z. Z. s上一个指向 V. V.
  • B.制作 V. V. s下一个指向 Z. Z.
  • C制作 W. W. s上一个指向 Z. Z.
  • D.制作 Z. Z. s下一个指向 W. W.

考虑圆链表。下列哪种方法如下删除光标之后的节点?光标是一个特殊的节点,让我们不得不从如果我们需要遍历圆链表开始的地方。

1 2 3 4 5 6 7 8 9 10 11
节点一种节点N){节点oldNode=光标GETNEXT();如果oldNode==.光标光标=节点GETNEXT()别的{光标setPrevoldNodeGETNEXT());oldNodesetNext空值);}尺寸-;返回oldNode;}

1 2 3 4 5
节点B.节点N){节点oldNode=NoldNodesetNext空值返回oldNode;}

1 2 3 4 5 6 7 8 9 10 11
节点C节点N){节点oldNode=光标GETNEXT();如果oldNode==.光标光标=空值别的{光标setNextoldNodeGETNEXT());oldNodesetNext空值);}尺寸-;返回oldNode;}

1 2 3 4 5 6 7 8 9 10 11
节点D.节点N){节点oldNode=N;如果oldNode==.光标光标=空值别的{光标setNextN);oldNodesetNext空值);}尺寸-;返回oldNode;}

给定一个单向链表,写一个程序转移的每个节点 K. K. 单元到左边。

例如

什么时候4. \右箭头 6. \右箭头 8. \右箭头 9.移动 2 2 单位离开它变成8. \右箭头 9. \右箭头 4. \右箭头 6.

什么将按以下链接列表看,当每个节点移动像 4432897427834 4432897427834 靠左。

34. \右箭头 17. \右箭头 17. \右箭头 74. \右箭头 83. \右箭头 59. \右箭头 39.

×

问题加载......

注意加载......

设置加载......