数据结构---写在前面

个人理解


数据结构是我在大学中上课听讲唯一一次从头到尾都认真听讲的课程,个人感觉自己从中受益匪浅。在此非常感谢我的大学数据结构老师harderj,对我们要求十分的严格,包括数据结构考试和课程设计方面,后面才感觉老师对自己的帮助很多。

我理解的算法和数据结构,如果算法是程序的灵魂,那数据结构一定是程序的躯体。算法是数据结构的处理对象,数据结构是算法的基础。但凡牵涉到有关的高级程序,必然会有算法,有算法必然会有数据结构,这是密不可分的,最终决定一个程序的NB程序,当然还是其算法,算法的根本却是数学!不过文章先总结数据结构的内容,接下来的博文会涉及到部分算法的内容(可能时间有限,只能总结部分常用的算法)。

结论:数学才是计算机领域的王道!嘻嘻嘻……

前言


这篇博文主要介绍数据结构的内容(附有知识模块的框架图)、我的数据结构学习方法。

数据结构基本知识点

数据结构大概知识的框架图:

数据结构---写在前面

点击这里可以下载源visio格式文件。

解释一下:
到底什么是数据结构?
数据结构研究的就是数据、数据间的结构和数据间的操作。
书本上定义为:是一门研究程序设计问题中计算机的操作对象之间的关系和操作等等的学科。
Pascal之父:尼古拉斯·沃斯Niklaus Wirth 提出的:“算法+数据结构=程序”

图中的大框架涵盖了数据结构的主要内容,右下角包含的内容是对ADT(抽象数据类型)的解释,数据结构和算法之间的关系介绍。核心的知识点,我们在图中用红色的字体标注,可以重点进行学习。其他的内容这里不做解释,可以下载图片或者源文件进行查看。

我的学习方法


总结一句话就是:

‘编’就完事!

解释一下:

编哪些程序或者内容呢?
1.线性表的基本操作内容;
2.链表的基本操作内容;
3.链队列、顺序队列的基本操作以及应用:杨辉三角、OS的作业调度系统、树结构的分层输出、图结构的广度优先搜索程序等;
4.链栈、顺序栈的基本操作以及应用:进制间的转换、括号匹配、中缀/后缀表达式、函数的调用、递归的调用、迷宫;
5.串的基本操作,串的检索算法:经典的KMP算法;
6.二叉树的存储,构建和应用,哈夫曼树的存储,构建和应用;
7.图的存储,遍历,最小生成树算法,最短路径算法。
8.查找的一些经典算法(折半查找、二叉排序树查找、B+、B-树);
9.内排序的常用算法:简单排序(交换排序、直接插入排序、选择排序),先进排序(希尔排序、快速排序、堆排序、二路归并排序),线性排序(基数排序)。

总结


文章的内容均是博主学习的总结,也是把自己学习的经验总结和大家进行分享和交流,如果我有理解不到或者理解错误的地方请指出,遇到问题可以留言方便交流学习。