大话数据结构

网站

更多书籍点击进入>> CiCi岛

下载

电子版仅供预览及学习交流使用,下载后请24小时内删除,支持正版,喜欢的请购买正版书籍

  • 电子书下载(皮皮云盘-点击“普通下载”)
  • 购买正版

封页

大话数据结构_第1张图片

编辑推荐

超级畅销书《大话设计模式》作者的新作!用户群更为广泛,写作风格一如既往,技术沉淀更加深厚,势必掀起全民数据结构的热潮! 大话设计模式——谈笑间,读懂IT世界 大话存储——谈笑间,读懂IT世界 大话处理器——谈笑间,读懂IT世界

内容简介

  本书为超级畅销书《大话设计模式》作者程杰潜心三年推出的扛鼎之作!以一个计算机教师教学为场景,讲解数据结构和相关算法的知识。通篇以一种趣味方式来叙述,大量引用了各种各样的生活知识来类比,并充分运用图形语言来体现抽象内容,对数据结构所涉及到的一些经典算法做到逐行分析、多算法比较。与市场上的同类数据结构图书相比,本书内容趣味易读,算法讲解细致深刻,是一本非常适合自学的读物。
  本书以一个计算机教师教学为场景,讲解数据结构和相关算法的知识。通篇以一种趣味方式来叙述,大量引用了各种各样的生活知识来类比,并充分运用图形语言来体现抽象内容,对数据结构所涉及到的一些经典算法做到逐行分析、多算法比较。与市场上的同类数据结构图书相比,本书内容趣味易读,算法讲解细致深刻,是一本非常适合自学的读物。
  本书主要内容包含:数据结构介绍、算法推导大O阶的方法;顺序结构与链式结构差异、栈与队列的应用;串的朴素模式匹配、KMP模式匹配算法;二叉树前中后序遍历、赫夫曼树及应用;图的深度、广度遍历;最小生成树两种算法、最短路径两种算法;拓扑排序与关键路径算法;折半查找、插值查找、斐波那契查找等静态查找;稠密索引、分块索引、倒排索引等索引技术;二叉排序树、平衡二叉树等动态查找;B树、B 树技术,散列表技术;冒泡、选择、插入等简单排序;希尔、堆、归并、快速等改进排序……
本书适合学过一门编程语言的各类读者,包括在读的大中专计算机专业学生、想转行做开发的非专业人员、欲考计算机研究生的应届或在职人员,以及工作后需要补学或温习数据结构和算法的程序员等

作者简介

一个被读者誉为很适合写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开场白
 5.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  二叉树性质1
  6.6.2  二叉树性质2
  6.6.3  二叉树性质3
  6.6.4  二叉树性质4
  6.6.5  二叉树性质5
 6.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  结 尾 语
附录  参考文献

你可能感兴趣的:(大话数据结构)