大话数据结构

大话数据结构
7.9
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者:
出版社: 清华大学出版社
2011-06
版次: 1
ISBN: 9787302255659
定价: 59.00
装帧: 平装
开本: 16开
纸张: 胶版纸
页数: 439页
字数: 662千字
正文语种: 简体中文
  •   《大话数据结构》为超级畅销书《大话设计模式》作者程杰潜心三年推出的扛鼎之作!以一个计算机教师教学为场景,讲解数据结构和相关算法的知识。通篇以一种趣味方式来叙述,大量引用了各种各样的生活知识来类比,并充分运用图形语言来体现抽象内容,对数据结构所涉及到的一些经典算法做到逐行分析、多算法比较。与市场上的同类数据结构图书相比,本书内容趣味易读,算法讲解细致深刻,是一本非常适合自学的读物。   程杰,一个被读者誉为很适合写IT技术书的家伙。《大话设计模式》作者。此书07年末出版至今已经简体版印刷9次、繁体版印刷6次,取得了较好的成绩,开创了一种适合国人阅读的趣味讲解IT知识的风格模式。其本人参与过政府、证券、游戏、交通等多种行业的软件开发及项目管理工作,也曾做过软件培训的教师。因曾有过两年半高中数学教学的独特经历,使得其书作当中处处以初学者视角考虑和分析问题,他成为了当前很受欢迎的IT技术图书作者之一。 第1章 数据结构绪论1.1 开场白1.2 你数据结构怎么学的?1.3 数据结构起源1.4 基本概念和术语1.4.1 数据1.4.2 数据元素1.4.3 数据项1.4.4 数据对象1.4.5 数据结构1.5 逻辑结构与物理结构1.5.1 逻辑结构1.5.2 物理结构1.6 抽象数据类型1.6.1 数据类型1.6.2 抽象数据类型1.7 总结回顾1.8 结尾语第2章 算法2.1 开场白2.2 数据结构与算法关系2.3 两种算法的比较2.4 算法定义2.5 算法的特性2.5.1 输入输出2.5.2 有穷性2.5.3 确定性2.5.4 可行性2.6 算法设计的要求2.6.1 正确性2.6.2 可读性2.6.3 健壮性2.6.4 时间效率高和存储量低2.7 算法效率的度量方法2.7.1 事后统计方法2.7.2 事前分析估算方法2.8 函数的渐近增长2.9 算法时间复杂度2.9.1 算法时间复杂度定义2.9.2 推导大O阶方法2.9.3 常数阶2.9.4 线性阶2.9.5 对数阶2.9.6 平方阶2.10 常见的时间复杂度2.11 最坏情况与平均情况2.12 算法空间复杂度2.13 总结回顾2.14 结尾语第3章 线性表3.1 开场白3.2 线性表的定义3.3 线性表的抽象数据类型3.4 线性表的顺序存储结构3.4.1 顺序存储定义3.4.2 顺序存储方式3.4.3 数据长度与线性表长度区别3.4.4 地址计算方法3.5 顺序存储结构的插入与删除3.5.1 获得元素操作3.5.2 插入操作3.5.3 删除操作3.5.4 线性表顺序存储结构的优缺点3.6 线性表的链式存储结构3.6.1 顺序存储结构不足的解决办法3.6.2 线性表链式存储结构定义3.6.3 头指针与头结点的异同3.6.4 线性表链式存储结构代码描述3.7 单链表的读取3.8 单链表的插入与删除3.8.1 单链表的插入3.8.2 单链表的删除3.9 单链表的整表创建3.10 单链表的整表删除3.11 单链表结构与顺序存储结构优缺点3.12 静态链表3.12.1 静态链表的插入操作3.12.2 静态链表的删除操作3.12.3 静态链表优缺点3.13 循环链表3.14 双向链表3.15 总结回顾3.16 结尾语第4章 栈与队列4.1 开场白4.2 栈的定义4.2.1 栈的定义4.2.2 进栈出栈变化形式4.3 栈的抽象数据类型4.4 栈的顺序存储结构及实现4.4.1 栈的顺序存储结构4.4.2 栈的顺序存储结构进栈操作4.4.3 栈的顺序存储结构出栈操作4.5 两栈共享空间4.6 栈的链式存储结构及实现4.6.1 栈的链式存储结构4.6.2 栈的链式存储结构进栈操作4.6.3 栈的链式存储结构出栈操作4.7 栈的作用4.8 栈的应用--递归4.8.1 斐波那契数列实现4.8.2 递归定义4.9 栈的应用--四则运算表达式求值4.9.1 后缀(逆波兰)表示法定义4.9.2 后缀表达式计算结果4.9.3 中缀表达式转后缀表达式4.10 队列的定义4.11 队列的抽象数据类型4.12 循环队列4.12.1 队列顺序存储的不足4.12.2 循环队列定义4.13 队列的链式存储结构及实现4.13.1 队列链式存储结构入队操作4.13.2 队列链式存储结构出队操作4.14 总结回顾4.15 结尾语第5章 串5.1开场白05.2 串的定义5.3 串的比较5.4 串的抽象数据类型5.5 串的存储结构5.5.1 串的顺序存储结构5.5.2 串的链式存储结构5.6 朴素的模式匹配算法5.7 KMP模式匹配算法5.7.1 KMP模式匹配算法原理5.7.2 next数组值推导5.7.3 KMP模式匹配算法实现5.7.4 KMP模式匹配算法改进5.7.5 nextval数组值推导5.8 总结回顾5.9 结尾语第6章 树6.1 开场白6.2 树的定义6.2.1 结点分类6.2.2 结点间关系6.2.3 树的其他相关概念6.3 树的抽象数据类型6.4 树的存储结构6.4.1 双亲表示法6.4.2 孩子表示法6.4.3 孩子兄弟表示法6.5 二叉树的定义6.5.1 二叉树特点6.5.2 特殊二叉树6.6 二叉树的性质6.6.1 二叉树性质16.6.2 二叉树性质26.6.3 二叉树性质36.6.4 二叉树性质46.6.5 二叉树性质56.7 二叉树的存储结构6.7.1 二叉树顺序存储结构6.7.2 二叉链表6.8 遍历二叉树6.8.1 二叉树遍历原理6.8.2 二叉树遍历方法6.8.3 前序遍历算法6.8.4 中序遍历算法6.8.5 后序遍历算法6.8.6 推导遍历结果6.9 二叉树的建立6.10 线索二叉树6.10.1 线索二叉树原理6.10.2 线索二叉树结构实现6.11 树、森林与二叉树的转换6.11.1 树转换为二叉树6.11.2 森林转换为二叉树6.11.3 二叉树转换为树6.11.4 二叉树转换为森林6.11.5 树与森林的遍历6.12 赫夫曼树及其应用6.12.1 赫夫曼树6.12.2 赫夫曼树定义与原理6.12.3 赫夫曼编码6.13 总结回顾6.14 结尾语第7章 图7.1 开场白7.2 图的定义7.2.1 各种图定义7.2.2 图的顶点与边间关系7.2.3 连通图相关术语7.2.4 图的定义与术语总结7.3 图的抽象数据类型7.4 图的存储结构7.4.1 邻接矩阵7.4.2 邻接表7.4.3 十字链表7.4.4 邻接多重表7.4.5 边集数组7.5 图的遍历7.5.1 深度优先遍历7.5.2 广度优先遍历7.6 最小生成树7.6.1 普里姆(Prim)算法7.6.2 克鲁斯卡尔(Kruskal)算法7.7 最短路径7.7.1 迪杰斯特拉(Dijkstra)算法7.7.2 弗洛伊德(Floyd)算法7.8 拓扑排序7.8.1 拓扑排序介绍7.8.2 拓扑排序算法7.9 关键路径7.9.1 关键路径算法原理7.9.2 关键路径算法7.10 总结回顾7.11 结尾语第8章 查找8.1 开场白8.2 查找概论8.3 顺序表查找8.3.1 顺序表查找算法8.3.2 顺序表查找优化8.4 有序表查找8.4.1 折半查找8.4.2 插值查找8.4.3 斐波那契查找8.5 线性索引查找8.5.1 稠密索引8.5.2 分块索引8.5.3 倒排索引8.6 二叉排序树8.6.1 二叉排序树查找操作8.6.2 二叉排序树插入操作8.6.3 二叉排序树删除操作8.6.4 二叉排序树总结8.7 平衡二叉树(AVL树)8.7.1 平衡二叉树实现原理8.7.2 平衡二叉树实现算法8.8 多路查找树(B树)8.8.1 2-3树8.8.2 2-3-4树8.8.3 B树8.8.4 B+树8.9 散列表查找(哈希表)概述8.9.1 散列表查找定义8.9.2 散列表查找步骤8.10 散列函数的构造方法8.10.1 直接定址法8.10.2 数字分析法8.10.3 平方取中法8.10.4 折叠法8.10.5 除留余数法8.10.6 随机数法8.11 处理散列冲突的方法8.11.1 开放定址法8.11.2 再散列函数法8.11.3 链地址法8.11.4 公共溢出区法8.12 散列表查找实现8.12.1 散列表查找算法实现8.12.2 散列表查找性能分析8.13 总结回顾8.14 结尾语第9章 排序9.1 开场白9.2 排序的基本概念与分类9.2.1 排序的稳定性9.2.2 内排序与外排序9.2.3 排序用到的结构与函数9.3 冒泡排序9.3.1 最简单排序实现9.3.2 冒泡排序算法9.3.3 冒泡排序优化9.3.4 冒泡排序复杂度分析9.4 简单选择排序9.4.1 简单选择排序算法9.4.2 简单选择排序复杂度分析9.5 直接插入排序9.5.1 直接插入排序算法9.5.2 直接插入排序复杂度分析9.6 希尔排序9.6.1 希尔排序原理9.6.2 希尔排序算法9.6.3 希尔排序复杂度分析9.7 堆 排 序9.7.1 堆排序算法9.7.2 堆排序复杂度分析9.8 归并排序9.8.1 归并排序算法9.8.2 归并排序复杂度分析9.8.3 非递归实现归并排序9.9 快速排序9.9.1 快速排序算法9.9.2 快速排序复杂度分析9.9.3 快速排序优化1.优化选取枢轴2.优化不必要的交换3.优化小数组时的排序方案4.优化递归操作9.10 总结回顾9.11 结尾语附录 参考文献
  • 内容简介:
      《大话数据结构》为超级畅销书《大话设计模式》作者程杰潜心三年推出的扛鼎之作!以一个计算机教师教学为场景,讲解数据结构和相关算法的知识。通篇以一种趣味方式来叙述,大量引用了各种各样的生活知识来类比,并充分运用图形语言来体现抽象内容,对数据结构所涉及到的一些经典算法做到逐行分析、多算法比较。与市场上的同类数据结构图书相比,本书内容趣味易读,算法讲解细致深刻,是一本非常适合自学的读物。
  • 作者简介:
      程杰,一个被读者誉为很适合写IT技术书的家伙。《大话设计模式》作者。此书07年末出版至今已经简体版印刷9次、繁体版印刷6次,取得了较好的成绩,开创了一种适合国人阅读的趣味讲解IT知识的风格模式。其本人参与过政府、证券、游戏、交通等多种行业的软件开发及项目管理工作,也曾做过软件培训的教师。因曾有过两年半高中数学教学的独特经历,使得其书作当中处处以初学者视角考虑和分析问题,他成为了当前很受欢迎的IT技术图书作者之一。
  • 目录:
    第1章 数据结构绪论1.1 开场白1.2 你数据结构怎么学的?1.3 数据结构起源1.4 基本概念和术语1.4.1 数据1.4.2 数据元素1.4.3 数据项1.4.4 数据对象1.4.5 数据结构1.5 逻辑结构与物理结构1.5.1 逻辑结构1.5.2 物理结构1.6 抽象数据类型1.6.1 数据类型1.6.2 抽象数据类型1.7 总结回顾1.8 结尾语第2章 算法2.1 开场白2.2 数据结构与算法关系2.3 两种算法的比较2.4 算法定义2.5 算法的特性2.5.1 输入输出2.5.2 有穷性2.5.3 确定性2.5.4 可行性2.6 算法设计的要求2.6.1 正确性2.6.2 可读性2.6.3 健壮性2.6.4 时间效率高和存储量低2.7 算法效率的度量方法2.7.1 事后统计方法2.7.2 事前分析估算方法2.8 函数的渐近增长2.9 算法时间复杂度2.9.1 算法时间复杂度定义2.9.2 推导大O阶方法2.9.3 常数阶2.9.4 线性阶2.9.5 对数阶2.9.6 平方阶2.10 常见的时间复杂度2.11 最坏情况与平均情况2.12 算法空间复杂度2.13 总结回顾2.14 结尾语第3章 线性表3.1 开场白3.2 线性表的定义3.3 线性表的抽象数据类型3.4 线性表的顺序存储结构3.4.1 顺序存储定义3.4.2 顺序存储方式3.4.3 数据长度与线性表长度区别3.4.4 地址计算方法3.5 顺序存储结构的插入与删除3.5.1 获得元素操作3.5.2 插入操作3.5.3 删除操作3.5.4 线性表顺序存储结构的优缺点3.6 线性表的链式存储结构3.6.1 顺序存储结构不足的解决办法3.6.2 线性表链式存储结构定义3.6.3 头指针与头结点的异同3.6.4 线性表链式存储结构代码描述3.7 单链表的读取3.8 单链表的插入与删除3.8.1 单链表的插入3.8.2 单链表的删除3.9 单链表的整表创建3.10 单链表的整表删除3.11 单链表结构与顺序存储结构优缺点3.12 静态链表3.12.1 静态链表的插入操作3.12.2 静态链表的删除操作3.12.3 静态链表优缺点3.13 循环链表3.14 双向链表3.15 总结回顾3.16 结尾语第4章 栈与队列4.1 开场白4.2 栈的定义4.2.1 栈的定义4.2.2 进栈出栈变化形式4.3 栈的抽象数据类型4.4 栈的顺序存储结构及实现4.4.1 栈的顺序存储结构4.4.2 栈的顺序存储结构进栈操作4.4.3 栈的顺序存储结构出栈操作4.5 两栈共享空间4.6 栈的链式存储结构及实现4.6.1 栈的链式存储结构4.6.2 栈的链式存储结构进栈操作4.6.3 栈的链式存储结构出栈操作4.7 栈的作用4.8 栈的应用--递归4.8.1 斐波那契数列实现4.8.2 递归定义4.9 栈的应用--四则运算表达式求值4.9.1 后缀(逆波兰)表示法定义4.9.2 后缀表达式计算结果4.9.3 中缀表达式转后缀表达式4.10 队列的定义4.11 队列的抽象数据类型4.12 循环队列4.12.1 队列顺序存储的不足4.12.2 循环队列定义4.13 队列的链式存储结构及实现4.13.1 队列链式存储结构入队操作4.13.2 队列链式存储结构出队操作4.14 总结回顾4.15 结尾语第5章 串5.1开场白05.2 串的定义5.3 串的比较5.4 串的抽象数据类型5.5 串的存储结构5.5.1 串的顺序存储结构5.5.2 串的链式存储结构5.6 朴素的模式匹配算法5.7 KMP模式匹配算法5.7.1 KMP模式匹配算法原理5.7.2 next数组值推导5.7.3 KMP模式匹配算法实现5.7.4 KMP模式匹配算法改进5.7.5 nextval数组值推导5.8 总结回顾5.9 结尾语第6章 树6.1 开场白6.2 树的定义6.2.1 结点分类6.2.2 结点间关系6.2.3 树的其他相关概念6.3 树的抽象数据类型6.4 树的存储结构6.4.1 双亲表示法6.4.2 孩子表示法6.4.3 孩子兄弟表示法6.5 二叉树的定义6.5.1 二叉树特点6.5.2 特殊二叉树6.6 二叉树的性质6.6.1 二叉树性质16.6.2 二叉树性质26.6.3 二叉树性质36.6.4 二叉树性质46.6.5 二叉树性质56.7 二叉树的存储结构6.7.1 二叉树顺序存储结构6.7.2 二叉链表6.8 遍历二叉树6.8.1 二叉树遍历原理6.8.2 二叉树遍历方法6.8.3 前序遍历算法6.8.4 中序遍历算法6.8.5 后序遍历算法6.8.6 推导遍历结果6.9 二叉树的建立6.10 线索二叉树6.10.1 线索二叉树原理6.10.2 线索二叉树结构实现6.11 树、森林与二叉树的转换6.11.1 树转换为二叉树6.11.2 森林转换为二叉树6.11.3 二叉树转换为树6.11.4 二叉树转换为森林6.11.5 树与森林的遍历6.12 赫夫曼树及其应用6.12.1 赫夫曼树6.12.2 赫夫曼树定义与原理6.12.3 赫夫曼编码6.13 总结回顾6.14 结尾语第7章 图7.1 开场白7.2 图的定义7.2.1 各种图定义7.2.2 图的顶点与边间关系7.2.3 连通图相关术语7.2.4 图的定义与术语总结7.3 图的抽象数据类型7.4 图的存储结构7.4.1 邻接矩阵7.4.2 邻接表7.4.3 十字链表7.4.4 邻接多重表7.4.5 边集数组7.5 图的遍历7.5.1 深度优先遍历7.5.2 广度优先遍历7.6 最小生成树7.6.1 普里姆(Prim)算法7.6.2 克鲁斯卡尔(Kruskal)算法7.7 最短路径7.7.1 迪杰斯特拉(Dijkstra)算法7.7.2 弗洛伊德(Floyd)算法7.8 拓扑排序7.8.1 拓扑排序介绍7.8.2 拓扑排序算法7.9 关键路径7.9.1 关键路径算法原理7.9.2 关键路径算法7.10 总结回顾7.11 结尾语第8章 查找8.1 开场白8.2 查找概论8.3 顺序表查找8.3.1 顺序表查找算法8.3.2 顺序表查找优化8.4 有序表查找8.4.1 折半查找8.4.2 插值查找8.4.3 斐波那契查找8.5 线性索引查找8.5.1 稠密索引8.5.2 分块索引8.5.3 倒排索引8.6 二叉排序树8.6.1 二叉排序树查找操作8.6.2 二叉排序树插入操作8.6.3 二叉排序树删除操作8.6.4 二叉排序树总结8.7 平衡二叉树(AVL树)8.7.1 平衡二叉树实现原理8.7.2 平衡二叉树实现算法8.8 多路查找树(B树)8.8.1 2-3树8.8.2 2-3-4树8.8.3 B树8.8.4 B+树8.9 散列表查找(哈希表)概述8.9.1 散列表查找定义8.9.2 散列表查找步骤8.10 散列函数的构造方法8.10.1 直接定址法8.10.2 数字分析法8.10.3 平方取中法8.10.4 折叠法8.10.5 除留余数法8.10.6 随机数法8.11 处理散列冲突的方法8.11.1 开放定址法8.11.2 再散列函数法8.11.3 链地址法8.11.4 公共溢出区法8.12 散列表查找实现8.12.1 散列表查找算法实现8.12.2 散列表查找性能分析8.13 总结回顾8.14 结尾语第9章 排序9.1 开场白9.2 排序的基本概念与分类9.2.1 排序的稳定性9.2.2 内排序与外排序9.2.3 排序用到的结构与函数9.3 冒泡排序9.3.1 最简单排序实现9.3.2 冒泡排序算法9.3.3 冒泡排序优化9.3.4 冒泡排序复杂度分析9.4 简单选择排序9.4.1 简单选择排序算法9.4.2 简单选择排序复杂度分析9.5 直接插入排序9.5.1 直接插入排序算法9.5.2 直接插入排序复杂度分析9.6 希尔排序9.6.1 希尔排序原理9.6.2 希尔排序算法9.6.3 希尔排序复杂度分析9.7 堆 排 序9.7.1 堆排序算法9.7.2 堆排序复杂度分析9.8 归并排序9.8.1 归并排序算法9.8.2 归并排序复杂度分析9.8.3 非递归实现归并排序9.9 快速排序9.9.1 快速排序算法9.9.2 快速排序复杂度分析9.9.3 快速排序优化1.优化选取枢轴2.优化不必要的交换3.优化小数组时的排序方案4.优化递归操作9.10 总结回顾9.11 结尾语附录 参考文献
查看详情
12
好书推荐 / 更多
大话数据结构
见证:肖斯塔科维奇回忆录
叶琼芳 译;[俄]季米特里·肖斯塔科维奇 口述;[美]所罗门·伏尔科夫 整理
大话数据结构
黄昏的诉说
德里克·沃尔科特 著;[圣卢西亚]德里克·沃尔科特 编;刘志刚 马绍博 译
大话数据结构
演化
[法]让-巴普蒂斯特·德·帕纳菲厄(Jean-Baptiste de Panafieu)、[法]帕特里克·格里斯(Patrick Gries) 著;邢路达、胡晗、王维 译;[法]帕特里克·格里斯(Patrick Gries) 摄影
大话数据结构
群星
七月 著
大话数据结构
罪与罚:学术评论版(文学纪念碑)
[俄]费奥多尔·陀思妥耶夫斯基 著;曹国维 译
大话数据结构
涉渡之舟:新时期中国女性写作与女性文化
戴锦华 著
大话数据结构
伯林传
[加拿大]叶礼庭 著;罗妍莉 译
大话数据结构
韩国文学丛书:你的夏天还好吗?
[韩]金爱烂 著;薛舟 译
大话数据结构
洛城机密:洛城四部曲之三
[美]詹姆斯·艾尔罗伊 著;姚向辉 译
大话数据结构
两全其美
[美]梅尔·梅洛 著;李思璟 译
大话数据结构
近代山区社会的习惯、契约和权利——龙泉司法档案的社会史研究
杜正贞 著
大话数据结构
风雨鸡鸣:变动时代的读书人
罗志田 著