单链表中利用表头节点

来源:计算机等级考试    发布时间:2012-08-28    计算机等级考试视频    评论

  单链表的设计一直被我认为很简单,最近细细看了一本书中对单链表的设计,发现其中有一些有意思的地方。

  1. 单链表中插入元素的操作,可以不用定位当前节点的前驱节点:

  1)temp_element = curr.element; tem_next = curr.next;//暂存当前节点的元素以及当前节点的后驱节点的指针

  2) curr.element = new_element;  //  将新元素赋值给当前节点的元素

  3) curr.next = new(temp_element, tem_next);  // 以1)中暂存的数据创建新的节点,并赋值给当前节点的后驱节点

  2. 但是单链表删除节点时同样会出现的前驱节点定位问题却不能用以上思路解决。根据《数据结构及算法分析》介绍,可以用引入

  表头节点并将curr设定为当前节点的前驱节点的方法来解决这一问题:

单链表中利用表头节点

  删除:

  curr.next = curr.next.next;

  插入:

  curr.next = new node(new_elem, curr.next);

  这样就能很好地解决前去节点的定位了,换句话说,这能及一点点的空间代价换取高效的“插入”“删除”操作,很有意义。

视频学习

我考网版权与免责声明

① 凡本网注明稿件来源为"原创"的所有文字、图片和音视频稿件,版权均属本网所有。任何媒体、网站或个人转载、链接转贴或以其他方式复制发表时必须注明"稿件来源:我考网",违者本网将依法追究责任;

② 本网部分稿件来源于网络,任何单位或个人认为我考网发布的内容可能涉嫌侵犯其合法权益,应该及时向我考网书面反馈,并提供身份证明、权属证明及详细侵权情况证明,我考网在收到上述法律文件后,将会尽快移除被控侵权内容。

最近更新

社区交流

考试问答