首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 图书频道 > 计算机与网络 > 程序设计 >

数据结构(C++版)

2010-03-21 
基本信息·出版社:人民邮电出版社 ·页码:312 页 ·出版日期:2009年04月 ·ISBN:711519534X/9787115195340 ·条形码:9787115195340 ·版本:第1版 · ...
商家名称 信用等级 购买信息 订购本书
数据结构(C++版) 去商家看看
数据结构(C++版) 去商家看看

 数据结构(C++版)


基本信息·出版社:人民邮电出版社
·页码:312 页
·出版日期:2009年04月
·ISBN:711519534X/9787115195340
·条形码:9787115195340
·版本:第1版
·装帧:平装
·开本:16
·正文语种:中文
·丛书名:高等学校计算机系列,普通高等教育"十一五"国家级规划教材

内容简介 《数据结构(C++版)》根据教育部高等学校计算机科学与技术教学指导委员会关于“数据结构”课程的指导性大纲进行编写。书中系统地介绍各种数据结构的特点、存储结构及相关算法,并采用面向对象C++语言描述数据结构和算法。主要包括:数据结构的基本概念、算法描述和算法分析初步,线性表、栈、队列、串、数组、树、图等数据结构,以及排序、查找等内容。多数章节给出了完整C++语言源程序示例,每章后面配有小结和习题。最后一章介绍怎样编写数据结构的应用程序及实验步骤规范。
《数据结构(C++版)》叙述清晰、深入浅出、注重实践和应用,便于教学。
《数据结构(C++版)》可作为普通高等学校计算机及相关专业本科或专升本的教材,也可供相关证书考试、考研或从事计算机应用与工程工作的科技工作者自学参考。
编辑推荐 《数据结构(C++版)》教材编写思路:
《数据结构(C++版)》根据教育部高等学校计算机科学与技术教学指导委员会关于“数据结构”课程的指导性大纲进行编写 书中系统地介绍各种数据结构的特点、存储结构及相关算法,并采用面向对象C++语言描述数据结构和算法 主要包括:数据结构的基本概念、算法描述和算法分析初步,线性表、栈、队列、串、数组、树、图等数据结构,以及排序、查找等内容 多数章节给出了完整C++语言源程序示例,每章后面配有小结和习题 以后一章介绍怎样编写数据结构的应用程序及实验步骤规范。
适用教学对象
《数据结构(C++版)》可作为普通高等院校计算机及相关专业本科或专升本的教材,也可供相关证书考试、考研或从卞计算机应用与工程工作的科技工作者自学参考。
辅助教学资源
教学课件等 《数据结构(C++版)》作者曾于2004年将“数据结构”课程建设成浙江省精品课程,在课程网站(http://sjjg.js.zeu.edu.cn/)上提供了丰富的教学资源。
目录
第1章 绪论
1.1 问题的引入
1.1.1 引言
1.1.2 数据结构课程研究内容
1.2 数据结构的基本概念
1.2.1 计算机领域中的数据
1.2.2 数据结构相关概念
1.3 抽象数据类型
1.3.1 数据类型
1.3.2 抽象数据类型
1.3.3 抽象数据类型的实现
1.4 C++语言
1.4.1 函数模板与函数重载
1.4.2 结构体及运用
1.4.3 类的基本概念及运用
1.5 算法描述与分析
1.5.1 什么是算法
1.5.2 算法描述工具——C++语言
1.5.3 算法分析技术
1.6 小结
习题1

第2章 线性表
2.1 线性表的基本概念
2.1.1 线性表的定义
2.1.2 线性表的抽象数据类型
2.2 线性表的顺序存储结构及实现
2.2.1 线性表的顺序存储结构
2.2.2 顺序表类定义
2.2.3 顺序表的插入和删除
2.2.4 线性表的其他运算
2.3 线性表的链表存储结构及实现
2.3.1 单链表与指针
2.3.2 单链表类定义
2.3.3 链表的插入和删除
2.3.4 单链表的其他运算
2.4 循环链表和双向链表
2.4.1 循环链表
2.4.2 双向链表
2.4.3 顺序结构与链表结构的分析比较
2.5 一元多项式相加问题
2.5.1 多项式的链表存储结构
2.5.2 多项式相加的实现
2.6 线性表的C++源程序
2.6.1 顺序表类的实现
2.6.2 单链表类实现通信录问题
2.7 小结
习题2

第3章 栈和队列
3.1 栈
3.1.1 栈的定义
3.1.2 栈的抽象数据类型
3.2 栈的顺序存储结构及实现
3.2.1 栈的顺序存储结构
3.2.2 顺序栈类定义
3.3 栈的链表存储结构及实现
3.3.1 栈的链表存储结构
3.3.2 链表栈类定义
3.4 栈的应用
3.4.1 表达式的计算
3.4.2 子程序的嵌套调用
3.4.3 递归调用
3.4.4 n阶Hanoi塔问题
3.5 队列
3.5.1 队列的定义
3.5.2 队列的抽象数据类型
3.6 队列的顺序存储结构及实现
3.6.1 队列的顺序存储结构
3.6.2 循环队列类定义
3.7 队列的链表存储结构及实现
3.7.1 队列的链表存储结构
3.7.2 链表队列类定义
3.8 队列的应用
3.9 栈和队列的C++源程序
3.9.1 链表栈类的实现
3.9.2 链表队列类实现报数问题
3.10 小结
习题3

第4章 串
4.1 串的基本概念
4.1.1 串的定义
4.1.2 串的抽象数据类型
4.1.3 常用字符串函数
4.2 串的存储表示
4.2.1 串的定长顺序存储表示
4.2.2 串的堆分配存储表示
4.2.3 串的块链存储表示
4.3 串类及实现
4.3.1 串的类定义
4.3.2 串基本运算的实现
4.4 串的模式匹配
4.4.1 朴素模式匹配
4.4.2 KMP模式匹配
4.5 串的模式匹配C++源程序
4.6 小结
习题4

第5章 数组和广义表
5.1 数组的基本概念
5.1.1 数组的定义
5.1.2 数组的顺序表示
5.2 特殊矩阵
5.3 稀疏矩阵
5.3.1 数组元素的三元组
5.3.2 三元组顺序表
5.3.3 十字链表
5.4 迷宫问题
5.5 广义表
5.5.1 广义表的基本概念
5.5.2 广义表的存储结构
5.5.3 广义表类定义
5.6 矩阵运算和广义表的C++源程序
5.6.1 三元组表实现稀疏矩阵加法
5.6.2 头尾链表结构实现广义表
5.7 小结
习题5

第6章 树与二叉树
6.1 树的基本概念和术语
6.1.1 树的定义
6.1.2 树的抽象数据类型
6.1.3 树的表示形式
6.2 二叉树
6.2.1 二叉树的定义和性质
6.2.2 二叉树的存储结构
6.2.3 二叉树的二叉链表类定义
6.3 遍历二叉树
6.3.1 先根遍历
6.3.2 中根遍历
6.3.3 后根遍历
6.3.4 按层遍历
6.3.5 二叉树遍历算法的应用
6.4 线索二叉树
6.4.1 线索二叉树的基本概念
6.4.2 线索二叉树的逻辑表示图
6.4.3 线索化二叉树类
6.4.4 在中根线索树上查找前驱和后继
6.4.5 遍历中根线索二叉树
6.5 二叉树、树和森林
6.5.1 树的存储结构
6.5.2 树与二叉树的转换
6.5.3 森林与二叉树的转换
6.6 树和森林的孩子——兄弟表示及遍历
6.6.1 一般树的遍历
6.6.2 森林的遍历
6.7 树的应用
6.7.1 二叉排序树
6.7.2 哈夫曼树及应用
6.8 二叉树的C++源程序
6.8.1 二叉树的建立和遍历
6.8.2 哈夫曼树与编码
6.9 小结
习题6

第7章 图
7.1 图的基本概念
7.1.1 图的定义
7.1.2 图的术语
7.1.3 图的抽象数据类型
7.2 图的存储结构
7.2.1 图的邻接矩阵
7.2.2 图的邻接矩阵类
7.2.3 图的邻接链表
7.2.4 图的邻接链表类
7.3 图的遍历与图的连通性
7.3.1 图的深度优先遍历
7.3.2 图的广度优先遍历
7.3.3 非连通图和连通分量
7.4 图的最小生成树
7.4.1 最小生成树的概念
7.4.2 普里姆算法
7.4.3 克鲁斯卡尔算法
7.5 最短路径
7.5.1 单源顶点最短路径
7.5.2 每对顶点之间的最短路径
7.6 拓扑排序与关键路径
7.6.1 拓扑排序
7.6.2 关键路径
7.7 图的C++源程序
7.8 小结
习题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 B-树
8.3.4 B+树
8.4 哈希表及其查找
8.4.1 哈希表与哈希函数
8.4.2 构造哈希函数的常用方法
8.4.3 解决冲突的主要方法
8.4.4 哈希查找效率分析
8.5 查找的C++源程序
8.5.1 二叉排序树查找
8.5.2 哈希表及其查找
8.6 小结
习题8

第9章 排序
9.1 排序的基本概念
9.2 插入排序
9.2.1 直接插入排序
9.2.2 折半插入排序
9.2.3 希尔排序
9.3 交换排序
9.3.1 冒泡排序
9.3.2 快速排序
9.4 选择排序
9.4.1 简单选择排序
9.4.2 堆排序
9.5 归并排序
9.6 基数排序
9.7 排序的C++源程序
9.8 小结
习题9

第10章 典型数据结构类模板
10.1 顺序栈类模板
10.2 循环队列类模板
10.3 使用类模板

第11章 数据结构程序设计
11.1 从问题到程序的一般过程
11.1.1 问题分析
11.1.2 初步设计
11.1.3 程序编码
11.1.4 上机调试
11.1.5 实验报告
11.2 程序实例
11.2.1 统计短文中各字母的频度
11.2.2 城市间交通图最短路径问题
参考文献
……
序言 “数据结构”是计算机专业重要的专业基础课程与核心课程之一。
为适应我国计算机科学技术的应用和发展,进一步提高计算机专业“数据结构”课程的教学质量,作者根据多年的教学经验,结合当前高等教育大众化的趋势,在分析国内、外多种同类教材的基础上,编写了本书。
在2000年,作者曾经编写出版了《数据结构》(使用C语言)一书,在2004年该书的第2版出版发行,前后印刷十多次。随着计算机应用的发展,作者又编写了采用C++语言的《数据结构——使用C斗一卜语言》一书。
本书继承了前几本书的一些特色,作者结合近几年教学改革的实践,对其内容做了进一步的优化、补充和完善。近几年教学实践表明,在教学中较早引入面向对象概念和技术,对本科的工程应用型人才培养是有益的。实践还表明,采用面向对象的C++语言进行数据结构教学是可行的,且对于普通高校本科学生也是适用的。
本书具有以下特色。
1.实例导入,由浅入深。在概念引入时,尽量采用人们熟悉的计算机应用实例,使读者感到“有用”。对数据结构概念和理论的介绍,适当增加了图示,使复杂抽象的概念尽量形象化,使读者感到“可学”。对各种基本算法描述尽量详细,叙述清楚。对数据结构的基本概念、基本理论的阐述注重科学严谨。为了逐步提高学生的抽象思维能力,与作者先期几本书相比,在本书中增加了线性表等典型数据结构的ADT描述。
文摘 插图:


第1章 绪论
随着计算机科学技术、计算机产业的迅速发展,计算机的应用普及也在以惊人的速度发展,计算机应用已经深入到人类社会的各个领域。计算机的应用早已不限于科学计算,而更多地应用在信息处理方面。计算机可以存储的数据对象不再是纯粹的数值,而扩展到了字符、声音、图像、表格等各种各样的信息。对于信息的处理也不再是单纯的计算,而是一些如信息存储、信息检索等非数值的计算。那么,现实世界的各种数据信息怎样才能够存储到计算机的内存之中,对存入计算机的数据信息怎样进行科学处理,这涉及计算机科学的信息表示和算法设计问题。为解决现实世界中某个复杂问题,总是希望设计一个高效适用的程序。这就需要解决怎样合理地组织数据、建立合适的数据结构,怎样设计适用的算法,以提高程序执行的时间效率和空间效率。“数据结构”就是在此背景下逐步形成、发展起来的。
主要内容:
●数据结构的基本概念
●抽象数据类型
●C什语言简介
●算法描述与分析
1.1 问题的引入
1.1.1 引言
在各种高级语言程序设计的基本训练中,解决某一实际问题的步骤一般是:分析实际问题;确定数学模型;编写程序;反复调试程序直至得到正确结果。所谓数学模型一般指具体的数学公式、方程式等,如牛顿迭代法解方程,各种级数的计算等。这属于数值计算的一类问题。而现实生活中,更多的是非数值计算问题,如手机中的通讯录,人们对它的操作主要是查找、增加、删除或者修改电话记录。再如,人们经常在互联网上查阅各种新闻,或查阅电子地图,人们可以在某城区地图上查找自己所需的街道或店铺,其操作主要是搜索和查询。下面再来分析几个典型实例,它们的主要特点是:不同实例的数据元素之间存在不同的关系;对数据信息的处理主要有插入、删除、排序、检索等。
热点排行