IT女神节(致敬中国IT界永远的女神严蔚敏-数据结构)
创始人
2024-05-30 00:44:04
0

          我们都知道程序=数据结构+算法。相信很多人都学过严蔚敏的数据结构的课程。作为一个码农,在这不管是3.7女神节,还是3.8妇女节。我觉得都有必要向这些教育界的老前辈致敬。今天我就梳理梳理,最经典的数据结构教材。

严蔚敏介绍(来自百度百科)

严蔚敏(1938.04—),女,汉族。清华大学计算机系教授,长期从事数据结构教学和教材建设,和吴伟民合作编著的《数据结构》曾获“第二届普通高等学校优秀教材全国特等奖”和“1996年度国家科学技术进步奖三等奖”。成为我国大中专院校学习“数据结构”使用最多的教材版本。 

数据结构书籍封面:

我们来看看书籍目录:(大家看看自己还有多少还给老师了?)其实我们在面试中经常问的比较基础的东西就是这些东西。

第1章 结论
1.1 什么是数据结构
1.2 基本概念和术语
1.3 抽象数据类型的表示与实现
1.4 算法和算法分析
1.4.1 算法
1.4.2 算法设计的要求
1.4.3 算法效率的度量
1.4.4 算法的存储空间需求
第2章 线性表
2.1 线性表的类型定义
2.2 线性表的顺序表示和实现
2.3 线性表的链式表示和实现
2.3.1 线性链表
2.3.2 循环链表
2.3.3 双向链表
2.4 一元多项式的表示及相加
第3章 栈和队列
3.1 栈
3.1.1 抽象数据类型栈的定义
3.1.2 栈的表示和实现
3.2 栈的应用举例
3.2.1 数制转换
3.2.2 括号匹配的检验
3.2.3 行编辑程序
3.2.4 迷宫求解
3.2.5 表达式求值
3.3 栈与递归的实现
3.4 队列
3.4.1 抽象数据类型队列的定义
3.4.2 链队列--队列的链式表示和实现
3.4.3 循环队列--队列的顺序表示和实现
3.5 离散事件模拟
第4章 串
4.1 串类型的定义
4.2 串的表示和实现
4.2.1 定长顺序存储表示
4.2.2 堆分配存储表示
4.2.3 串的块链存储表示
4.3 串的模式匹配算法
4.3.1 求子串位置的定位函数Index(S,T,pos)
4.3.2 模式匹配的一种改进算法
4.4 串操作应用举例
4.4.1 文本编辑
4.4.2 建立词索引表
第5章 数组和广义表
5.1 数组的定义
5.2 数组的顺序表示和实现
5.3 矩阵的压缩存储
5.3.1 特殊矩阵
5.3.2 稀疏矩阵
5.4 广义表的定义
5.5 广义表的存储结构
5.6 m元多项式的表示
5.7 广义表的递归算法
5.7.1 求广义表的深度
5.7.2 复制广义表
5.7.3 建立广义表的存储结构
第6章 树和二叉树
6.1 树的定义和基本术语
6.2 二叉树
6.2.1 二叉树的定义
6.2.2 二叉树的性质
6.2.3 二叉树的存储结构
6.3 遍历二叉树和线索二叉树
6.3.1 遍历二叉树
6.3.2 线索二叉树
6.4 树和森林
6.4.1 树的存储结构
6.4.2 森林与二叉树的转换
6.4.3 树和森林的遍历
6.5 树与等价问题
6.6 赫夫曼树及其应用
6.6.1 最优二叉树(赫夫曼树)
6.6.2 赫夫曼编码
6.7 回溯法与树的遍历
6.8 树的计数
第7章 图
7.1 图的定义和术语
7.2 图的存储结构
7.2.1 数组表示法 [2] 
7.2.2 邻接表
7.2.3 十字链表
7.2.4 邻接多重表
7.3 图的遍历
7.3.1 深度优先搜索
7.3.2 广度优先搜索
7.4 图的连通性问题
7.4.1 天向图的连通分量和生成树
7.4.2 有向图的强连通分量
7.4.3 最小生成树
7.4.4 关节点和重连通分量
7.5 有向无环图及其应用
7.5.1 拓扑排序
7.5.2 关键路径
7.6 最短路径
7.6.1 从某个源点到其余各项点的最短路径
7.6.2 每一对顶点之间的最短路径
第8章 动态存储管理
8.1 概述
8.2 可利用空间表及分配方法
8.3 边界标识法
8.3.1 可利用空间表的结构
8.3.2 分配算法
8.3.3 回收算法
8.4 伙伴系统
8.4.1 可利用空间表的结构
8.4.2 分配算法
8.4.3 回收算法
8.5 无用单元收集
8.6 存储紧缩
第9章 查找
9.1 静态查找表
9.1.1 顺序表的查找
9.1.2 有序表的查找
9.1.3 静态树表的查找
9.1.4 索引顺序表的查找
9.2 动态查找表
9.2.1 二叉排序树和平衡二叉树
9.2.2 B_树和B+树
9.2.3 键树
9.3 哈希表
9.3.1 什么是哈希表
9.3.2 哈希函数的构造方法
9.3.3 处理冲突的方法
9.3.4 哈希表的查找及其分析
第10章 内部排序
10.1 概述
10.2 插入排序
10.2.1 直接插入排序
10.2.2 其他插入排序
10.2.3 希尔排序
10.3 快速排序
10.4 选择排序
10.4.1 简单选择排序
10.4.2 树形选择排序
10.4.3 堆排序
10.5 归并排序
10.6 基数排序
10.6.1 多关键字的排序
10.6.2 链式基数排序
10.7 各种内部排序方法的比较讨论
第11章 外部排序
11.1 外存信息的存取
11.2 外部排序的方法
11.3 多路平衡归并的实现
11.4 置换-选择排序
11.5 最佳归并树
第12章 文件
12.1 有关文件的基本概念
12.2 顺序文件
12.3 索引文件
12.4 ISAM文件和VSAM文件
12.4.1 ISAM文件
12.4.2 VSAM文件
12.5 直接存取文件(散列文件)
12.6 多关键字文件
12.6.1 多重表文件
12.6.2 倒排文件 [2] 

 重点学习数据结构:

一、线性表

线性表又称线性存储结构,是最简单的一种存储结构,专门用来存储逻辑关系为“一对一”的数据。

在一个数据集中,如果每个数据的左侧都有且仅有一个数据和它有关系,数据的右侧也有且仅有一个数据和它有关系,那么这些数据之间就是“一对一“的逻辑关系。

示例图:

 线性表的存储:

在具有“一对一“逻辑关系的数据集中,每个个体习惯称为数据元素(简称元素)

二、 栈和队列

栈:

对于逻辑关系为“一对一”的数据,除了用顺序表链表存储外,还可以用栈结构存储。
栈是一种“特殊”的线性存储结构,它的特殊之处体现在以下两个地方:
1、元素进栈和出栈的操作只能从一端完成,另一端是封闭的。

2、栈中无论存数据还是取数据,都必须遵循“先进后出”的原则,即最先入栈的元素最先出栈。

 队列:

队列用来存储逻辑关系为“一对一”的数据,是一种“特殊”的线性存储结构。

顺序表链表相比,队列的特殊性体现在以下两个方面:
1、元素只能从队列的一端进入,从另一端出去。

2、队列中各个元素的进出必须遵循“先进先出”的原则,即最先入队的元素必须最先出队。

 三、串

对于由多个字符(≥ 0)组成的字符串(例如 "maoheyeren"),数据结构单独提供了一种存储结构,称为串结构。

字符串中的字符之间具有“一对一”的逻辑关系,所以严格意义上讲,串存储结构也属于线性存储结构。和顺序表链表队列这些线性存储结构不同的是,串存储结构专门用来存储字符串。

空串指的是未存储任何字符的串,整个串的长度为 0。

String s = "";

空格串指的是由多个(>0)空格字符组成的串结构,整个串的长度为包含空格字符的个数。

String s = "    ";

子串和主串

maoheyerenmao

四、数组和广义表

数组是对线性表的扩展,是一种“特殊”的线性存储结构,用来存储具有多种“一对一”逻辑关系的数据。

实际场景中,存储具有 N 种“一对一”逻辑关系的数据,通常会建立 N 维数组

一维数组和其它线性存储结构很类似,用来存储只有一种“一对一”逻辑关系的数据

一维数组:

 二维数组用来存储包含两种“一对一”逻辑关系的数据。二维数组可以看作是存储一维数组的一维数组

二维数组:

 五、树和二叉树

树结构通常用来存储逻辑关系为 "一对多" 的数据。

 和链表类似,树存储结构中也将存储的各个元素称为 "结点"。

通常,我们将一棵树中几个结点构成的“小树”称为这棵树的“子树”。
一个结点拥有子树的个数,就称为该结点的度(Degree)。

从一棵树的树根开始,树根所在层为第一层,根的孩子结点所在的层为第二层,依次类推。

如果一棵树中,各个结点左子树和右子树的位置不能交换,那么这棵树就称为有序树。反之,如果树中结点的左、右子树可以互换,那么这棵树就是一棵无序树。

由 m(m >= 0)个互不相交的树组成的集合就称为森林。

空树指的是没有任何结点的树,连根结点都没有。

二叉树:

简单地理解,满足以下两个条件的树就是二叉树:

  1. 本身是有序树;
  2. 树中包含的各个节点的度不能超过 2,即只能是 0、1 或者 2;

 

 

六、图 

图结构常用来存储逻辑关系为“多对多”的数据。比如说,一个学生可以同时选择多门课程,而一门课程可以同时被多名学生选择,学生和课程之间的逻辑关系就是“多对多”。

 

相关内容

热门资讯

女生平板推荐安卓系统,安卓系统... 亲爱的女生们,是不是正在为挑选一款适合自己的平板电脑而烦恼呢?别急,今天就来给你好好盘点一下市面上那...
怎么把安卓系统刷成wp系统 你有没有想过,把你的安卓手机换成Windows Phone系统,体验一下不一样的手机世界呢?别急,别...
怎么把安卓系统转入苹果,系统迁... 你有没有想过,把你的安卓手机换成苹果手机,体验一下那个传说中的流畅和优雅呢?没错,我就是来告诉你,怎...
中邮先锋安卓系统,引领智能通信... 你有没有发现,手机操作系统更新换代的速度简直就像坐上了火箭呢?这不,最近中邮先锋的安卓系统又来了一场...
mac能用安卓系统吗,探索跨平... 亲爱的果粉们,你是否曾有过这样的疑问:那台你心爱的Mac,能不能装上安卓系统呢?这个问题,估计不少M...
手机安装安卓系统1,引领智能生... 你有没有发现,现在手机的世界里,安卓系统就像是个超级明星,几乎无处不在呢!想象你手中的这部智能手机,...
导航安卓系统开机要多久,安卓系... 你有没有想过,每次打开你的安卓手机,那导航系统启动的时间到底有多长呢?是不是有时候等得有点不耐烦,心...
安卓系统app更新哪里更新系统... 你有没有发现,你的安卓手机最近总是跳出来提醒你更新app?别急,别急,让我来给你详细解析安卓系统ap...
安卓系统怎样关闭广告弹窗,安卓... 你是不是也被安卓手机上的广告弹窗折磨得头疼不已?别急,今天就来手把手教你如何关闭这些烦人的小东西,让...
可视门禁对讲系统安卓,安卓平台... 你有没有想过,家里的门禁系统也能变得这么酷炫?没错,就是那种一按按钮,门就能开,还能和你聊天的可视门...
安卓系统更换主屏幕图片,轻松美... 你有没有发现,手机的主屏幕图片可是我们日常使用中最能体现个性和心情的地方呢?今天,就让我来带你一起探...
苹果外观安卓系统的手机,探索跨... 你有没有发现,最近市面上出现了一种特别有意思的手机?它长得像苹果,却搭载了安卓系统,这究竟是怎么回事...
三星手机系统是安卓系统,深度解... 你有没有发现,每次拿出手机,那熟悉的界面和流畅的操作总让人忍不住多看几眼?没错,我要说的就是三星手机...
安卓拼接广告机系统,打造高效智... 你有没有想过,那些在商场、车站、甚至是街头巷尾随处可见的广告机,其实背后有着一套复杂的系统在支撑呢?...
安卓系统标签打印机 你有没有想过,家里的照片、孩子的画作、甚至是那些手写的情书,如果能够变成精美的实物,那该多好啊!今天...
iOS系统可以和安卓系统蓝牙吗... 你有没有想过,你的iPhone和安卓手机之间能不能来个“蓝牙之恋”呢?想象你用iPhone听歌,而安...
安卓4.4系统状态栏,功能与个... 你有没有发现,每次拿出手机,那个小小的状态栏总是默默无闻地躺在屏幕的顶部,却承载着那么多重要的信息?...
友联系安卓系统怎么装,友联系安... 你有没有想过,给安卓系统来个焕然一新的变身?别急,今天就来手把手教你如何安装友联系安卓系统,让你的手...
都哪个国家用安卓系统 说到安卓系统,这可是当今手机界的“网红”呢!你有没有想过,究竟都有哪些国家的小伙伴们在使用这个神奇的...
为什么安卓系统没有ios系统好... 你有没有想过,为什么安卓系统总是被说成没有iOS系统好呢?这背后可是有好多有趣的原因哦!让我们一起揭...