数据结构

出版时间:2009-1  出版社:电子工业出版社  作者:叶核亚  页数:305  
Tag标签:无  

前言

  数据结构是软件设计的重要理论和实践基础,数据结构设计和算法设计是软件系统设计的核心。“数据结构”课程讨论的知识内容是软件设计的理论基础。“数据结构”课程介绍的技术方法是软件设计中使用的基本方法。“数据结构”是理论与实践并重的课程,要求学生既要掌握数据结构的基础理论知识,又要掌握运行和调试程序的基本技能。因此,“数据结构”课程在计算机类各专业本科学生的培养过程中有着十分重要的地位,是计算机类专业的一门核心课程,是培养程序设计能力的必不可少的重要环节。

内容概要

  《数据结构(C++版)(第2版)》全面系统地介绍数据结构的基础理论和算法设计方法,包括线性表、树、图等数据结构以及查找和排序算法。内容涉及的广度和深度符合计算机专业本科的基本要求,体现了本科教学的培养目标。  《数据结构(C++版)(第2版)》采用C++语言,以面向对象方法描述数据结构和算法。《数据结构(C++版)(第2版)》理论叙述精练,结构安排合理,重点是数据结构设计和算法设计,通过降低理论难度和抽象性、加强实践环节等措施,力求增强学生的理解能力和应用能力。

书籍目录

第1章 绪论1.1 数据结构的基本概念1.1.1 为什么要学习数据结构1.1.2 什么是数据结构1.1.3 数据类型与抽象数据类型1.2 算法1.2.1 什么是算法1.2.2 算法分析1.2.3 算法设计习题1实验1 算法设计与分析第2章 线性表2.1 线性表抽象数据类型2.2 线性表的顺序表示和实现2.3 线性表的链式表示和实现2.3.1 线性表的链式存储结构2.3.2 单链表2.3.3 双链表习题2实验2 线性表顺序存储结构和链式存储结构的基本操作第3章 串3.1 串抽象数据类型3.1.1 串的基本概念3.1.2 串抽象数据类型3.2 串的表示和实现3.2.1 串的存储结构3.2.2 字符串类3.3 串的模式匹配3.3.1 朴素的模式匹配(Bmte.Force)算法3.3.2 无回溯的模式匹配(KMP)算法习题3实验3 串的基本操作及模式匹配算法第4章 栈和队列4.1 栈4.1.1 栈抽象数据类型4.1.2 顺序栈4.1.3 链式栈4.1.4 栈的应用4.2 队列4.2.1 队列抽象数据类型4.2.2 顺序队列4.2.3 链式队列4.2.4 队列的应用4.3 优先队列4.4 递归习题4实验4 栈和队列以及递归算法第5章 数组和广义表5.1 数组5.1.1 一维数组5.1.2 多维数组5.2 特殊矩阵的压缩存储5.2.1 对称(三角)矩阵的存储5.2.2 稀疏矩阵的压缩存储5.3 广义表5.3.1 广义表抽象数据类型513.2 广义表的存储结构习题5实验5 矩阵的存储和运算第6章 树和二叉树6.1 树及其抽象数据类型6.1.1 树的定义6.1.2 树的术语6.1.3 树的表示法6.1.4 树抽象数据类型6.2 二叉树及其抽象数据类型6.2.1 二叉树定义6.2.2 二叉树的性质6.2.3 二叉树的遍历规则6.2.4 二叉树抽象数据类型6.3 二叉树的表示和实现6.3.1 二叉树的存储结构6.3.2 二叉树的二叉链表实现6.4 线索二叉树6.4.1 线索二叉树定义6.4.2 中序线索二叉树6.5 哈夫曼编码与哈夫曼树6.5.1 哈夫曼编码6.5.2 哈夫曼树6.6 树的表示和实现6.6.1 树的存储结构6.6.2 树的孩子兄弟链表实现习题6实验6 树和二叉树的基本操作第7章 图7.1 图及其抽象数据类型7.1.1 图的基本概念7.1.2 图抽象数据类型7.2 图的表示和实现7.2.1 图的邻接矩阵表示7.2.2 图的邻接表表示7.2.3 图的邻接多重表表示7.3 图的遍历7.3.1 图的深度优先搜索遍历7.3.2 图的广度优先搜索遍历7.4 最小生成树7.4.1 生成树7.4.2 最小生成树的构造算法7.5 最短路径7.5.1 非负权值的单源最短路径7.5.2 每对顶点间的最短路径习题7实验7 图的表示和操作第8章 查找8.1 查找的基本概念8.2 基于线性表的查找8.2.1 顺序查找8.2.2 基于有序顺序表的折半查找8.2.3 基于索引顺序表的分块查找8.3 散列8.3.1 散列表8.3.2 散列函数8.3.3 处理冲突8.3.4 链地址法的散列表8.4 二叉排序树和平衡二叉树8.4.1 二叉排序树及其查找8.4.2 平衡二叉树习题8实验8 查找算法及其效率分析第9章 排序9.1 排序的基本概念9.2 插入排序9.2.1 顺序查找9.2.2 希尔排序9.3 交换排序9.3.1 冒泡排序9.3.2 快速排序9.4 选择排序9.4.1 直接选择排序9.4.2 堆排序9.5 归并排序习题9实验9 排序算法设计及分析第10章 综合应用设计10.1 算法分析10.1.1 时间代价分析10.1.2 空间代价分析10.2 算法设计策略10.2.1 分治法10.2.2 动态规划法10.2.3 贪心法10.2.4 回溯法10.3 课程设计的目的、要求和选题第11章 Visual C++集成开发环境11.1 visualC++6.0集成开发环境11.2 编辑、编译和运行c++程序11.2.1 新建、编辑、编译和运行一个C++程序11.2.2 一个项目包含头文件和c++程序11.2.3 一个工作区包含多个项目11.3 程序调试技术11.3.1 程序错误、发现时刻及错误处理原则11.3.2 程序运行方式11.3.3 调试界面11.3.4 调试过程附录A ASCII码表(前128个)附录B 运算符及其优先级附录C VisuaIC++6.O常用菜单命令及说明参考文献

章节摘录

  顺序表通常采用数组存储数据元素。将线性表的数据元素顺序存放在数组中,数据元素在数组中的物理顺序与线性表中元素的顺序关系完全相同。  数组是顺序存储的随机存取结构,占用一组连续的存储单元,通过下标(序号)识别元素,元素地址是下标的线性函数。一个下标能够唯一确定一个元素,存取任何一个元素所花费的时间是在程序设计语言中,数组已被实现为一种构造数据类型。数组一旦占用一片存储空间,这片存储空间的地址和长度就是确定的,不能更改。因此,数组只能进行赋值、取值两种随机存取操作,不能进行插入、删除操作。数组的内存分配有静态和动态两种方式,静态数组和动态数组都是定长的,当数组容量不够时,都不能就地扩容。  2.顺序表的插入和删除操作顺序表的插入和删除操作要移动数据元素。在顺序表元素位置插入元素,首先必须将元素向后移动,空出一个位置,然后将插入,元素移动过程。  如图2.2  如果数组已满,则不能插入,称为数据溢出。解决数据溢出的办法是,申请另一个更大容量的数组并复制全部数组元素,这样就扩充了顺序表的容量。

编辑推荐

  《数据结构(C++版)(第2版)》有配套的教学资料包,包括源代码、电子课件及习题解答。《数据结构(C++版)(第2版)》可作为普通高等学校计算机及相近专业学生的数据结构课程的教材,也可作为从事计算机软件开发和工程应用人员的参考书。

图书封面

图书标签Tags

评论、评分、阅读与下载


    数据结构 PDF格式下载


用户评论 (总计0条)

 
 

 

250万本中文图书简介、评论、评分,PDF格式免费下载。 第一图书网 手机版

京ICP备13047387号-7