大话数据结构

大话数据结构
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者:
出版社: 清华大学出版社
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 结尾语附录 参考文献
查看详情
好书推荐 / 更多
大话数据结构
洛城花落(周大新新作)
周大新
大话数据结构
名望与光荣(全三册)(波兰现代史诗、战后小说创作高成就作品)
[波兰]雅·伊瓦什凯维奇;易丽君 裴远颖
大话数据结构
金色俄罗斯丛书(27):堕落者的天堂波利亚科夫小说选
[俄]波利亚科夫 著
大话数据结构
果麦经典:黑塞童话
文泽尔 译者;果麦文化 出品;[德]赫尔曼·黑塞
大话数据结构
童年往事
[爱尔兰]罗迪·道伊尔 著;郭国良 彭真丹 译
大话数据结构
来日非善:艺术、批评、紧急事件
李翔宇 译者;作者:哈尔·福斯特
大话数据结构
汉代物质文化资料图说(修定本·精装)
孙机 著
大话数据结构
柏林法则:欧洲与德国之道
保罗·莱弗(英)
大话数据结构
俄罗斯千年文化:从古罗斯至今
[俄]德米特里·利哈乔夫 著;焦东建、董茉莉 译
大话数据结构
理想国译丛046:风雨横渡:英国、奴隶和美国革命
[英]西蒙·沙玛
大话数据结构
美国不平等的起源
[美]伊莎贝尔·威尔克森 著;姚向辉 顾冰珂 译
大话数据结构
甲骨文丛书·亚当夏娃浮沉录
[美]斯蒂芬·格林布拉特((Stephen Greenblatt)) 作者;罗颖男 译