对于信息类专业的学生而言,数据结构与算法是一门必修的课程。只有学好这门课程,熟练掌握线性表、栈、队列、树、图等基本结构,以及在这些结构上的各种算法,才能利用计算机去解决实际问题。
如何学好这门课程呢,给大家提供一种思考方式 —— 「整体思维」。
什么是整体思维呢?
它基于两条假设:
- 一切事物在底层上都是互相联系的;
- 整体能提供比个体本身更多的信息;
第一条很好理解,第二条是什么意思呢?
举个简单的例子:你要买一件沙发,除了考虑它的材质、舒适度、耐用性、价格之外,还要考虑什么?它跟家里的风格是否搭配,对吧。
如果你整个房子是现代简约风格,却放了一个实木红木沙发,那显然非常奇怪。
这就是「整体性」。沙发这个个体,放进整体的语境中,就被赋予了新的信息。
简而言之:我们永远不能孤立地考虑问题和事物,而应该不断地追问自己:
- 它的背景和场景是什么?
- 它为什么会出现?
- 它的出现带来了什么、导致了什么?
也就是把我们学习的每种结构以及每种结构的实现,跟我们已知的系统、体系,联系起来(比如我们学过的各类计算机语言、离散数学、运筹学等等),从整体的角度去学这些知识点。这样就会让各个知识点连接成知识网,逐渐形成自己的知识体系,作为武器,为我所用。
目录
第1章 绪论
- 1.1 数据结构
- <u>学习数据结构的必要性</u>
- <u>基本概念和术语</u>
- 1.2 算法
- <u>算法的特性</u>
- <u>算法的评价标准</u>
- <u>算法的时间复杂度</u>
- 1.3 数学预备知识
- <u>集合</u>
- <u>常用的数学术语</u>
- <u>对数</u>
- <u>递归</u>
- 1.4 C#预备知识
- <u>接口</u>
- <u>泛型编程</u>
- 本章小结
- 习题一
第2章 线性表
- 2.1 线性表的逻辑结构
- <u>线性表的定义</u>
- <u>线性表的基本操作</u>
- 2.2 顺序表
- <u>顺序表的定义</u>
- <u>顺序表的基本操作实现</u>
- <u>顺序表应用举例</u>
- 2.3 单链表
- <u>单链表的定义</u>
- <u>单链表的基本操作实现</u>
- <u>单链表应用举例</u>
- 2.4 其他链表
- <u>双向链表</u>
- <u>循环链表</u>
- 2.5 C#中的线性表
- 本章小结
- 习题二
第3章 栈和队列
- 3.1 栈
- <u>栈的定义及基本运算</u>
- <u>栈的存储和运算实现</u>
- <u>栈的应用举例</u>
- <u>C#中的栈</u>
- 3.2 队列
- <u>队列的定义及基本运算</u>
- <u>队列的存储和运算实现</u>
- <u>队列的应用举例</u>
- <u>C# 中的队列</u>
- 本章小结
- 习题三
第4章 串和数组
- 4.1 串
- <u>串的基本概念</u>
- <u>串的存储及类定义</u>
- <u>串的基本操作的实现</u>
- <u>C#中的串</u>
- 4.2 数组
- <u>数组的逻辑结构</u>
- <u>数组的内存映象</u>
- <u>C#中的数组</u>
- 本章小结
- 习题四
第5章 树和二叉树
- 5.1 树
- <u>树的定义</u>
- <u>树的相关术语</u>
- <u>树的逻辑表示</u>
- <u>树的基本操作</u>
- 5.2 二叉树
- <u>二叉树的定义</u>
- <u>二叉树的性质</u>
- <u>二叉树的存储结构</u>
- <u>二叉链表存储结构的类实现</u>
- <u>二叉树的遍历</u>
- 5.3 树与森林
- <u>树、森林与二叉树的转换</u>
- <u>树和森林的遍历</u>
- 5.4 哈夫曼树
- <u>哈夫曼树的基本概念</u>
- <u>哈夫曼树类的实现</u>
- <u>哈夫曼编码</u>
- 5.5 应用举例
- 5.6 C#中的树
- 本章小结
- 习题五
第6章 图
- 6.1 图的基本概念
- <u>图的定义</u>
- <u>图的基本术语</u>
- <u>图的基本操作</u>
- 6.2 图的存储结构
- <u>邻接矩阵</u>
- <u>邻接表</u>
- 6.3 图的遍历
- <u>深度优先遍历</u>
- <u>广度优先遍历</u>
- 6.4 图的应用
- <u>最小生成树</u>
- <u>最短路径</u>
- <u>拓扑排序</u>
- 本章小结
- 习题六
第7章 排序
- 7.1 基本概念
- 7.2 简单排序方法
- <u>直接插入排序</u>
- <u>冒泡排序</u>
- <u>简单选择排序</u>
- 7.3 快速排序
- 7.4 堆排序
- 7.5 归并排序
- 7.6 基数排序
- <u>多关键码排序</u>
- <u>链式基数排序</u>
- 7.7 各种排序方法的比较与讨论
- 7.8 C#中排序方法
- 本章小结
- 习题七
第8章 查找
- 8.1 基本概念和术语
- 8.2 静态查找表
- <u>顺序查找</u>
- <u>有序表的折半查找</u>
- <u>索引查找</u>
- 8.3 动态查找表
- 8.4 哈希表
- <u>哈希表的基本概念</u>
- <u>常用的哈希函数构造方法</u>
- <u>处理冲突的方法</u>
- 8.5 C#中的查找方法
- 本章小结
- 习题八
参考文献
推荐阅读
下载《数据结构(C#语言版)》
关注公众号,后台回复
20190320