【读书笔记】数据结构(C语言版)(第三版)人民邮电出版社

   57 min read

第一章 概论

第二章 线性表及其顺序存储

第三章 线性表的链式存储

第四章 字符串、数组和特殊矩阵

字符串

KMP 算法:

KMP 算法可部分匹配,也可找出全部匹配

正文:BBC_ABCDAB_ABCDABCDABDE 模式:ABCDABD(部分匹配表)(Next 数组)

部分匹配值:0 0 0 0 1 2 0 一一对应,来自于前缀和后缀的最长共有元素个数

1 的得来:ABCDA 前缀为 [A, AB, ABC, ABCD] 后缀为 [BCDA, CDA, CD, A] 共有元素为 A,只有一个,所以为1

前缀:除最后一个字符外全部头部组合 -> [A, AB, ABC, ABCD, ABCDA, ABCDAB] 后缀:除第一个字符外全部尾部组合 -> [BCDABD, CDABD, DABD, ABD, BD, D]

如果第一个字符就不匹配,直接移动一位,不考虑匹配表。 移动位数 = 已匹配字符数 - 对应的部分匹配值

数组

特殊矩阵

第五章 递归

第六章 树型结构

树的存储结构

树的遍历

树的线性表示

第七章 二叉树

存储结构

操作

穿线二叉树(线索二叉树)

树(森林)和二叉树的相互转换

第八章 图

图的存储结构

图的遍历

图的生成树

图的最短路径

图的拓扑排序

第九章 检索

线性表检索

二叉排序树(二叉查找树)

保持树的平衡

各种特性树

散列

第十章 内排序

插入排序

选择排序

交换排序

归并排序

基数排序(分配排序)