`

编写算法与数据结构中存在的小技巧和一些陷阱

 
阅读更多

1 链表中前驱的重要性。

      在链表中,删除一个结点而不导致链表断裂,一个必要条件就是这个结点的前驱和后继能够相连。

      然而不是每种数据结构上都保存有前驱指针。

      在这种情况下我们可以使用的一个小技巧就是在起点之前再增加一个结点(比如有些链表中的head)。然后把head与head->next一起推进,当head->next正好到达指定结点时,我们想要找的前驱也就找到了。

 

2 链表中临时指针的重要性。

 

      (1) 在很多时候,数据结构中都有一个关键的起点指针,比如链表中的first(不含有头结点)、head(含有头结点)、二叉树中的root。我们的遍历操作都要从这些起点指针开始动手,这就要求我们必须要慎重对待。很多时候我们可以使用一些临时指针来作为开头,避免修改关键性数据。

      (2) 当我们的遍历达到一定程度的时候,我们必须要保存一个结点的前驱,或者后继的时候,也就有必要了。

3 链表中for循环、while循环中止隐藏的陷阱。

/*注意for循环中止的时候,p指向第k个结点已经成立了。*/
   for (int i=1; i<k; i++) p=p->link;
 for (int i=1; i<k-1; i++) q=q->link; /*循环结束时,q指向谁?指向要删除的结点的前驱。有趣的是,如果要删除头结点,则这个语句不会执行*/
 

4 注意删除指针时的错误。

 

delete [] elements;//释放整个elements数组 
delete  elements; //只是释放element数组的头一个元素
 

 

分享到:
评论

相关推荐

    算法与数据结构习题答案+课件+参考资料 国防工业出版社 张永 李睿

     本书分为基本概念、简单数据结构(线性表、栈、队列)、复杂数据结构(树、图)和算法与数据结构应用(排序、查找、算法设计基础)四部分,详细介绍了常用数据结构和算法的基本概念及其不同的实现方法,对各种数据...

    《算法与数据结构》学习指导与习题解析-王晓东-傅清祥-叶东毅版

    各章内容分别介绍《算法与数据结构》相应章所涵盖的知识和技能的简明归纳,以及如何运用这些知识和技能解决实际中或理论上提出的有关问题的方法,其中包括出现在《算法与数据结构》中的许多典型的、较难的习题的解题...

    算法与数据结构(c++版)电子版

    本书是高等教育“十一五”国家级规划教材,系统介绍各种数据结构、常用算法及算法分析技术。数据结构的内容包括线性结构、树形结构、哈希结构、索引结构;算法方面的内容包括选择算法、查找算法、排序算法。本书还...

    《算法与数据结构》学习指导与习题解析

    各章内容分别介绍《算法与数据结构》相应章所涵盖的知识和技能的简明归纳,以及如何运用这些知识和技能解决实际中或理论上提出的有关问题的方法,其中包括出现在《算法与数据结构》中的许多典型的、较难的习题的解题...

    《Delphi算法与数据结构》源码

    《Delphi算法与数据结构》源码

    算法+数据结构=程序

    算法+数据结构=程序算法+数据结构=程序算法+数据结构=程序算法+数据结构=程序算法+数据结构=程序算法+数据结构=程序算法+数据结构=程序算法+数据结构=程序算法+数据结构=程序

    算法与数据结构第二版陈媛课后代码(自编写).rar

    如果有改进欢迎大佬补充,算法与数据结构第二版陈媛课后代码(自编写)

    数据结构-算法

    数据结构的经典算法,此算法用的是C语言。

    Java数据结构和算法

    Java数据结构和算法 Java数据结构和算法 Java数据结构和算法 Java数据结构和算法 Java数据结构和算法 Java数据结构和算法 Java数据结构和算法 Java数据结构和算法

    傅清祥:算法与数据结构

    傅清祥:算法与数据结构 傅清祥:算法与数据结构 傅清祥:算法与数据结构

    数据结构与算法----C#版

    虽然有许许多多关于数据结构与算法的书籍,但是这些书籍通常都是大学教材,而且是用在大学里经典讲授的Java语言或C++语言编写的。C#语言正在成为一种广受欢迎的编程语言。这本书为C#语言程序员提供了学习基础数据...

    数据结构与算法视频课程(59集)

    资源名称:数据结构与算法视频课程(59集)资源目录:【】mysql视频教程第41讲存储过程【】数据结构与算法_1.10算法的评价【】数据结构与算法_1.1编程的灵魂:数据结构 算法【】数据结构与算法_1.2算法的作用:猜...

    数据结构与算法分析

    treap树、k-d树、配对堆以及其他相关内容, ●合并了堆排序平均情况分析的一些新结果, 本书是国外数据结构与算法分析方面的标准教材,介绍了数据结构(大量数据的组织方法)以及算法分析(算法运行时间的估算)。...

    数据结构与算法考试复习试题和答案

    数据结构与算法考试复习试题和答案,很全面的试题和答案,考试必过

    《数据结构与算法分析》.txt

    典型算法设计技巧的介绍,主要包括贪婪算法、分治算法、动态规划、回溯算法和随机化算法等 应用 应用部分是上述数据结构和典型算法的一些应用示例,具体包括事件驱动模拟、等价类、残缺棋盘和图象压缩等问题的讨论,...

    《算法与数据结构》学习指导与习题解析(王晓东 傅清祥 叶东毅).rar

    《算法与数据结构》学习指导与习题解析(王晓东 傅清祥 叶东毅).rar

    数据结构与算法分析C语言版

     本书是国外数据结构与算法分析方面的标准教材,介绍了数据结构(大量数据的组织方法)以及算法分析(算法运行时间的估算)。本书的编写目标是同时讲授好的程序设计和算法分析技巧,使读者可以开发出具有最高效率的程序...

Global site tag (gtag.js) - Google Analytics