数据结构教程(C++版)(中国高等学校计算机科学与技术专业(应用型)规划教材)
分類: 图书,计算机/网络,数据库,数据库理论,
作者: 陈明 编著
出 版 社: 清华大学出版社
出版时间: 2009-5-1字数:版次: 1页数: 398印刷时间:开本: 16开印次: 1纸张:I S B N : 9787302182641包装: 平装编辑推荐
本书较系统地介绍了各种典型的数据结构,主要包括线性表、栈和队列、串、数组和广义表、树、图、查找、排序、递归和文件,为了加强对算法和C++语言的理解,还介绍了算法及算法分析、面向对象的程序设计与C+十方面的内容。本书叙述选材精炼、概念清楚、注重实用、逻辑性强,各章中所涉及的数据结构与算法都给出了C++语言描述,并附有大量的习题,便于学生理解与掌握。
主要特点如下:
1.内容丰富丽广泛;
2.注重系统性和科学性,突出了实用性;
3.强调培养数据结构的应用能力;
4.在编写形式上,力求深入浅出、图文并茂、语言精炼。
内容简介
本书系统地介绍了各种典型的数据结构,主要包括线性表、栈和队列、串、数组和广义表、树、图、查找、排序、递归和文件,为了加强对算法和C++语言的理解,还介绍了算法及算法分析、面向对象的程序设计与C+十方面的内容。本书内容精选、概念清楚、注重实用、逻辑性强,各章中所涉及的数据结构与算法都给出了C++语言描述,并都附有大量习题,便于学生理解与掌握。
本书可作为高等院校计算机专业及相关专业的教材,也可作为计算机应用技术人员的参考书。
作者简介
陈明教授,博士生导师。 1993年获德国科学联合会DFG基金于德国图滨根大学计算机学院做神经网络综合技术研究。教育部计算机及应用教学指导组成员(1996-2000),《计算机科学与探索》编委,《计算机教育》编委,中国计算机学会第六届、第七届、第八届、第九届理事(1996年-现在),中国计算视学会开放式系统专业委员会副主任,中国计算机学会计算机教育专委会常委及计算机科学与技术专业应用型人才培养研究组组长,全国计算机基础教育研究会常务理事,北京市计算机基础教育研究会副理事长,教育部IT&AT教育工程专家组成员,教育部文科计算机教学指导委员会委员,2003年获北京市教学名师奖。 撰写并出版计算机教材、专著及译著82种。其中有多种教材获“十一五”国家级规划教材,北京市精品教材以及北京市精品教材立项项目,曾获部级教学成果二等奖一项。北京市《计算机软件基础课程》优秀教学团队负责入。参加和完成国家自然科学基金、国家863高技术基金等多项科研项目。目前主要从事分布计算及计算智能方面的研究,培养了兰百二十余名硕士学位和博士学位研究生。在《计算机学报》、《软件学报》、《通信学报》等国内外学术刊物与会议上发表论文130余篇。
目录
第1章 绪论
1.1 数据结构的重要性
1.2 面向对象程序设计
1.2.1 面向对象方法
1.2.2C十+的特征及基本概念
1.3基本术语
1.4抽象数据类型
1.5数据结构的概念
1.6数据的逻辑结构
1.7数据的存储结构
1.8数据的运算
1.9数据的逻辑结构、存储结构及数据的运算的关系
1.10算法的描述和分析
1.10.1 算法描述
1.10.2算法分析
小结
习题一
第2章算法基础
2.1算法的相关概念
2.1.1算法的概念
2.1.2算法与程序
2.1.3数据结构与算法
2.2算法分析的相关概念
2.2.1算法分析的概念
2.2.2算法的时间复杂度
2.2.3算法的空间复杂度
2.3算法分析举例
2.3.1多项式问题
2.3.2静态搜索问题
2.4检验一个算法分析
小结
习题二
第3章面向对象程序设计与C++
3.1 面向对象程序设计的概念
3.2面向对象的程序设计与C++
3.3变量、常量与数据类型
3.3.1 变量
3.3.2 常量
3.3.3 数据类型
3.4 控制语句
3.4.1 表达式语句和空语句
3.4.2 块语句
3.4.3选择语句
3.4.4循环语句
3.4.5 转移语句
3.5 函数
3.5.1 函数定义
3.5.2 函数声明
3.5.3 函数调用
3.5.4参数传递
3.5.5 函数重载
3.5.6构造函数和析构函数
3.5.7友元函数
3.6继承与派生
3.7多态性、虚函数和纯虚函数
3.8模板
3.8.1模板的概念
3.8.2 函数模板与模板函数
3.8.3类模板与模板类
3.9输入与输出
小结
习题三
第4章线性表
4.1 线性表及其抽象数据类型说明
……
第5章栈和队列
第6章串
第7章数组和广义表
第8章树
第9章图
第10章查找
第11章排序
第12章递归
第13章文件
参考文献
书摘插图
第1章 绪论
在深入学习数据结构之前,应首先了解学习数据结构的意义、什么是数据结构及数据结构的一些相关概念等。这对于深刻理解后面章节的内容将会有很大的帮助。
1.1 数据结构的重要性
在计算机发展的初期,人们使用计算机主要是处理数值的计算问题,程序设计人员也主要把精力集中在程序设计的技巧上,但随着计算机应用领域的扩大和软硬件的发展,计算机对信息的处理加工已从单一的数值计算发展到大量地解决非数值问题,其加工处理的信息也由简单的数值发展到字符、图像、声音等具有复杂结构的数据。而数据结构就是随着计算机的产生和发展而发展起来的一门较新的计算学科。
在非数值计算问题中,数据之间的相互关系一般无法完全用数学方程式加以描述,并且数据的表示方法和组织形式直接关系到程序对数据的处理效率,而系统程序和许多应用程序的规模很大,结构复杂,这时人们考虑问题的关键已不再是分析数据和计算方法,而是是否能设计出合适的数据结构,有效地解决问题。
……