顶部
收藏

数据结构(第三版)

“十一五”国家规划教材

作者:
陈雁
定价:
28.90元
ISBN:
978-7-04-030695-8
版面字数:
380千字
开本:
16开
全书页数:
238页
装帧形式:
平装
重点项目:
“十一五”国家规划教材
出版时间:
2010-12-20
读者对象:
高等职业教育
一级分类:
计算机大类
二级分类:
计算机类
三级分类:
计算机类专业基础课程

本书是普通高等教育“十一五”国家级规划教材。

本书主要内容包括绪论、线性表和数组、栈和队列、树、图、排序、查找、数据结构程序设计等,最后,以Java语言为例,介绍了面向对象程序设计的数据结构。书中各章后附有自测练习题。

本书适用于高等职业学校、高等专科学校、成人高等学校、本科院校举办的二级职业技术学院,也可供示范性软件职业技术学院、继续教育学院、民办高等学校、技能型紧缺人才培养使用,还可供本科院校、计算机专业人员和爱好者参考。

  • 前辅文
  • 第1章 绪论
    • 1.1 概述
      • 1.1.1 数据结构的重要性和应用场合
      • 1.1.2 数据结构的学习方法
    • 1.2 数据结构的基本知识
      • 1.2.1 数据结构的定义
      • 1.2.2 元素的逻辑关系和物理关系
      • 1.2.3 数据结构应用实例
      • 1.2.4 抽象数据类型
    • 1.3 算法和算法描述
      • 1.3.1 算法的概念
      • 1.3.2 算法的表达
    • 1.4 算法的评价
      • 1.4.1 时间复杂度和空间复杂度的概念
      • 1.4.2 时间复杂度的估算规则
      • 1.4.3 时间复杂度估算任务
      • 1.4.4 常见的不同数量级时间复杂度
    • 自测练习题
  • 第2章 线性表和数组
    • 2.1 线性表的逻辑结构
      • 2.1.1 线性表的定义
      • 2.1.2 线性表的基本操作
      • 2.1.3 任务2.1:合并线性表——抽象描述
    • 2.2 线性表的顺序存储结构的实现
      • 2.2.1 顺序存储结构
      • 2.2.2 基本操作的实现
      • 2.2.3 动态分配的顺序存储结构介绍
      • 2.2.4 任务2.2:合并线性表——C语言实现
    • 2.3 线性表的链式存储结构的实现
      • 2.3.1 单链表
      • 2.3.2 单链表的基本操作
      • 2.3.3 任务2.3:一元多项式的单链表表示
      • 2.3.4 任务2.4:一元多项式相加
      • 2.3.5 循环链表和双向链表
    • 2.4 数组
      • 2.4.1 数组的基本概念
      • 2.4.2 数组的顺序存储结构
      • 2.4.3 特殊矩阵的压缩存储
      • 2.4.4 任务2.5:稀疏矩阵的转置
    • 2.5 实训任务
      • 2.5.1 实训任务2.1:超长正整数相加
      • 2.5.2 实训任务2.2:求约瑟夫环的出列顺序
    • 自测练习题
    • 算法设计题
  • 第3章 栈和队列
    • 3.1 栈
      • 3.1.1 栈的定义及其运算
      • 3.1.2 任务3.1:表达式处理——抽象描述
      • 3.1.3 栈的顺序存储结构的实现
      • 3.1.4 栈的链式存储结构的实现
      • 3.1.5 任务3.2:表达式处理——C语言实现
      • 3.1.6 任务3.3:汉诺塔问题的递归实现
    • 3.2 队列
      • 3.2.1 队列的定义及运算
      • 3.2.2 任务3.4:消息的加密和解密——改进的凯撒密码
      • 3.2.3 队列的顺序存储结构的实现
      • 3.2.4 任务3.5:消息的加密和解密——C语言实现
      • 3.2.5 队列的链式存储结构的实现
    • *3.3 拓展任务
      • 3.3.1 任务3.6:算术表达式的求值
      • 3.3.2 任务3.7:模拟停车场管理
    • 3.4 实训任务
      • 3.4.1 实训任务3.1:数制转换问题
      • 3.4.2 实训任务3.2:手机短信息功能的模拟
    • 自测练习题
    • 算法设计题
  • 第4章 树和二叉树
    • 4.1 树
      • 4.1.1 树的定义
      • 4.1.2 树的基本术语
    • 4.2 二叉树
      • 4.2.1 二叉树的定义
      • 4.2.2 二叉树的重要性质
      • 4.2.3 二叉树的存储结构
      • 4.2.4 任务4.1:建立二叉树的二叉链表
    • 4.3 遍历二叉树
      • 4.3.1 先根遍历二叉树
      • 4.3.2 任务4.2:求二叉树的叶子结点数
      • 4.3.3 中根遍历二叉树
      • 4.3.4 任务4.3:打印二叉树
      • 4.3.5 后根遍历二叉树
      • 4.3.6 任务4.4:销毁二叉树
    • 4.4 线索二叉树
      • 4.4.1 线索二叉树的基本概念
      • 4.4.2 中根线索二叉树
    • 4.5 树和森林
      • 4.5.1 树的存储结构
      • 4.5.2 树与二叉树之间的转换
      • 4.5.3 森林与二叉树的转换
      • 4.5.4 树和森林的遍历
    • 4.6 赫夫曼树及其应用
      • 4.6.1 赫夫曼树的基本概念
      • 4.6.2 任务4.5:构造赫夫曼树
      • 4.6.3 任务4.6:赫夫曼编码
    • 4.7 实训任务
      • 4.7.1 实训任务4.1:二叉树遍历及应用
      • 4.7.2 实训任务4.2:设计并输出赫夫曼编码
    • 自测练习题
    • 算法设计题
  • 第5章 图
    • 5.1 图的基本概念
      • 5.1.1 图的定义
      • 5.1.2 图的基本术语
    • 5.2 图的存储结构
      • 5.2.1 邻接矩阵表示法
      • 5.2.2 任务5.1:建立无向图的邻接矩阵
      • 5.2.3 邻接表
      • 5.2.4 任务5.2:建立有向图的邻接表
    • 5.3 图的遍历
      • 5.3.1 连通图的深度优先搜索遍历
      • 5.3.2 连通图的广度优先搜索遍历
      • 5.3.3 任务5.3:求无向图的连通分量
    • 5.4 图的最小生成树
      • 5.4.1 生成树的概念
      • 5.4.2 网络的最小生成树
      • 5.4.3 任务5.4:局域网布线造价问题
    • 5.5 最短路径
      • 5.5.1 从某源点到其余顶点之间的最短路径
      • 5.5.2 任务5.5:输出最短路径
      • 5.5.3 求有向网中每一对顶点间的最短路径
    • 5.6 有向无环图及其应用
      • 5.6.1 拓扑排序
      • *5.6.2 关键路径
    • 5.7 实训任务
      • 5.7.1 实训任务5.1:游览线路设计
      • 5.7.2 实训任务5.2:交通咨询
    • 自测练习题
    • 算法设计题
  • 第6章 排序
    • 6.1 排序的基本概念
    • 6.2 插入排序
      • 6.2.1 直接插入排序
      • 6.2.2 折半插入排序
      • 6.2.3 希尔排序
    • 6.3 交换排序
      • 6.3.1 冒泡排序
      • 6.3.2 任务6.1:字符串排序
      • 6.3.3 快速排序
    • 6.4 选择排序
      • 6.4.1 简单选择排序
      • 6.4.2 堆排序
      • 6.4.3 任务6.2:实现堆排序
    • 6.5 归并排序
    • 6.6 基数排序
    • 6.7 内部排序总结
    • 6.8 多路归并用于外排序的简介
    • 6.9 实训任务
      • 6.9.1 实训任务6.1:成绩表排序
      • 6.9.2 实训任务6.2:操作系统进程优先级排序
    • 自测练习题
  • 第7章 查找
    • 7.1 查找的基本概念
    • 7.2 静态查找表
      • 7.2.1 顺序查找
      • 7.2.2 折半查找
      • 7.2.3 索引顺序的查找
    • 7.3 动态查找表
      • 7.3.1 二叉排序查找树
      • 7.3.2 任务7.1:建立二叉排序树
      • 7.3.3 平衡二叉树与动态平衡技术
      • 7.3.4 B-树用于外部查找
    • 7.4 哈希表及其查找
      • 7.4.1 哈希函数与哈希表
      • 7.4.2 构造哈希函数的常用方法
      • 7.4.3 任务7.2:设计哈希函数
      • 7.4.4 解决冲突的主要方法
      • 7.4.5 哈希查找效率的分析
      • 7.4.6 任务7.3:设计哈希表
    • 7.5 实训任务
      • 7.5.1 实训任务7.1:二叉排序树的应用
      • 7.5.2 实训任务7.2:哈希表的应用
    • 自测练习题
  • 第8章 数据结构程序设计及其他
    • 8.1 数据结构程序设计
      • 8.1.1 算法书写规范
      • 8.1.2 实习步骤规范
    • 8.2 实习报告范例
    • 8.3 其他数据结构和加密算法
    • 自测练习题
  • 第9章 Java中已实现数据结构的使用
    • 9.1 Java中数据结构概述
      • 9.1.1 Java中数据结构相关类体系
      • 9.1.2 迭代器
    • 9.2 链表的实现
      • 9.2.1 任务9.1:建立一个链表LinkedList
      • 9.2.2 任务9.2:遍历整个链表
      • 9.2.3 任务9.3:对链表的常用操作的Java实现
      • 9.2.4 程序改进
    • 9.3 可变长数组的实现
      • 9.3.1 任务9.4:教材管理软件的数据存储实现
      • 9.3.2 任务9.5:全部教材信息的显示
      • 9.3.3 任务9.6:教材订购方法的参数传递
    • 9.4 任务9.7:将教材链表逆序输出
    • 9.5 哈希表的实现
      • 9.5.1 任务9.8:根据书号查询教材名
      • 9.5.2 任务9.9:程序初始值存储和装入
    • 9.6 自动排序的实现
      • 9.6.1 任务9.10:教材名自动排序
      • 9.6.2 任务9.11:将教材信息按教材名排序
      • 9.6.3 任务9.12:将教材信息按教材价格排序
      • 9.6.4 任务9.13:将教材信息对按关键字排序
      • 9.6.5 任务9.14:显示满足条件的部分教材
    • 自测练习题
  • 参考文献

相关图书