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

数据结构(STL框架)

2010-09-20 
商家名称 信用等级 购买信息 订购本书
数据结构(STL框架) 去商家看看
数据结构(STL框架) 去商家看看

 数据结构(STL框架)


基本信息·出版社:清华大学出版社
·页码:395 页
·出版日期:2009年09月
·ISBN:9787302203933
·条形码:9787302203933
·版本:第1版
·装帧:平装
·开本:16
·正文语种:中文
·丛书名:普通高等教育“十一五”国家级规划教材,21世纪大学本科计算机专业系列教材

内容简介 《数据结构(STL框架)》以ACM和IEEE/CSComputingCurricula2005课程体系以及教育部计算机科学与技术教学指导委员会发布的“高等学校计算机科学与技术本科专业规范”中制定的关于数据结构和算法设计与分析的知识结构和体系为依据,以基本数据结构和抽象数据类型为知识单元而编写。《数据结构(STL框架)》一个明显的特色是在STL(StandardTemplateLibrary)框架下描述数据结构的设计思想和实现方法,使读者循序渐进地理解数据抽象,面向对象设计方法和泛型算法设计三位一体的面向高层次的现代化软件设计风格。全书共分16章,涵盖CC2005课程体系中有关算法与数据结构、知识结构和体系的重要内容,包括算法与数据结构引论、向量、双端队列、表、栈和队列、排序与选择、树、二叉搜索树、平衡搜索树、集合、映射、堆与优先队列、散列、并查集、图与相关算法。
全书采用面向对象的C++语言作为描述语言,以STL的设计理念为描述和实现框架,内容丰富,叙述简明,理论与实践并重,每章设计有应用举例、数据结构与算法实验题,并为任课教师免费提供电子课件和课程实验用数据。
《数据结构(STL框架)》可作为高等学校计算机、电子信息、信息与计算科学、信息管理与信息系统等专业数据结构课程教材,也适合工程技术人员和自学者学习参考。
作者简介 王晓东,教授,福建省计算机学会理事长。研究领域是算法设计与算法评价,基于计算机网络和信息安全的大规模问题求解算法与数据结构,信息可视化技术,几何计算,并行和分布式算法设计,计算复杂性理论。主持国家自然科学基金项目、国家优秀留学回国人员基金项目、福建省杰出人才基金项目和省自然科学基金项目等7个研究课题;获得国家科技进步二等奖1项,省科技进步二等奖3项。主持国家精品课程“算法与数据结构”的课程建设,获2005年福建省教学成果一等奖。在国内外重要学术刊物E发表有创见性的论文50余篇;出版学术著作8部。在算法复杂性研究方面取得了一系列理论研究成果和应用成果。
编辑推荐 《数据结构(STL框架)》是国家精品课程配套教材,根据教育部“高等学校计算机科学与技术专业规范”组织编写,与美国ACM和IEEE Computing Curricula 2005同步。
《数据结构(STL框架)》特色
本教材以ACM和IEEE Comututing Curricula 2005课程体系以及教育部高等学校汁算机科学与技术教学指导委员会制定的“高等学校计算机科学与技术本科专业规范”中关于算法与数据结构的知识结构和体系为依据编写,具有如下特色:
按照算法与数据结构的知识结构和体系为主要内容,采用面向对象的C++语言作为描述语言,以STL的设计理念为描述和实现框架组织编写。为计算学科的学生提供广泛坚实的算法与数据结构的基础知识。
围绕计算学科常用的基本数据结构和基本算法组织教学内容。在概念的编织上,贯穿学科中反复出现的12个基本概念。在内容的组织上,体现计算学科的新概括,融会为学科形态的理论、抽象和设计三个过程。内容丰富,叙述简明,理论与实践并重。
在STL(Standard Template Library)的框架下来描述数据结构的设计思想和实现方法,使读者循序渐进地理解数据抽象,面向对象设计方法和泛型算法设计三位一体的面向高层次的现代化软件设计风格。
用广度与深度兼顾、理论与实践并重的教学策略,迅速培养学生的专业兴趣.在具体知识点的学习中深入探究,逐步培养科学严密的计算思维和创新能力。在STL框架下描述数据结构的设计思想和实现方法,有利于培养学生的抽象思维能力和逻辑推理能力,以及对于具体数据结构的实现和应用能力。
习题设计独具特色。理论分析型的习题侧重于算法与数据结构理论的掌握与扩展,应用实验型的习题则侧重数据结构的实现与具体应用。
为任课教师免费提供电子课件和课程实验型习题测试数据和答案。
目录
第1章 算法与数据结构引论
1.1 算法及其复杂性的概念
1.1.1 算法与程序
1.1.2 算法复杂性的概念
1.1.3 算法复杂性的渐近性态
1.2 数据结构与抽象数据类型
1.3 用C++描述数据结构与算法
1.3.1 指针和引用
1.3.2 函数与参数传递
1.3.3 C++的类
1.3.4 类的对象
1.3.5 模板
1.3.6 动态存储分配
1.4 递归
1.5 标准模板库STL与泛型算法
1.5.1 STL概述
1.5.2 容器
1.5.3 迭代器
1.5.4 泛型算法
1.5.5 函数对象
1.6 应用举例
1.6.1 用C++的类实现抽象数据类型
1.6.2 顺序搜索与二分搜索算法的设计与分析
1.6.3 递归算法的设计与分析
习题1
数据结构与算法实验1
数据结构与算法实验题1.1 实系数复变多项式问题
数据结构与算法实验题1.2 平面几何问题
数据结构与算法实验题1.3 m进制数问题

第2章 向量
2.1 向量的基本概念
2.2 抽象数据类型向量
2.3 向量的迭代器
2.4 向量的实现方法
2.5 矩阵与多维向量
2.6 高精度整数
2.7 应用举例
2.7.1 搜索公共元素问题
2.7.2 同色方块识别问题
2.7.3 全排列问题
习题2
数据结构与算法实验2
数据结构与算法实验题2.1 前缀与后缀和问题
数据结构与算法实验题2.2 投票选举问题
数据结构与算法实验题2.3 稳定婚姻问题
数据结构与算法实验题2.4 凸多边形的三角剖分问题

第3章 双端队列
3.1 双端队列的基本概念
3.2 抽象数据类型双端队列
3.3双端队列的实现方法
3.4 双端队列的迭代器
3.5 应用举例
3.5.1 双端队列的简单应用
3.5.2 简单多边形的凸壳问题
习题3
数据结构与算法实验3
数据结构与算法实验题3.1 排队购票问题
数据结构与算法实验题3.2 循环向量的极值问题

第4章 线性表
4.1 表的基本概念
4.2 用数组实现表
4.3 用指针实现表
4.3.1 用指针实现单链表的方法
4.3.2 单链表的迭代器
4.4 用间接寻址方法实现表
4.4.1 间接寻址方法的基本思想
4.4.2 间接寻址表的迭代器
4.5 用游标实现表
4.5.1 用游标实现表的基本思想
4.5.2 游标实现的表的迭代器
4.6 循环链表
4.6.1 实现单循环链表的基本思想
4.6.2 单循环链表的迭代器
4.7 双链表
4.7.1 实现双向循环链表的基本思想
4.7.2 双向循环链表的迭代器
4.8 应用举例
4.8.多项式函数
4.8.2 Josephus排列问题
习题4
数据结构与算法实验4
数据结构与算法实验题4.1 实系数一元多项式问题
数据结构与算法实验题4.2 Josephus排列问题1
数据结构与算法实验题4.3 向量分类问题
数据结构与算法实验题4.4 条形图轮廓问题
数据结构与算法实验题4.5 Josephus排列问题2

第5章 栈
5.1 栈的基本概念
5.2 栈的实现方法
5.3 应用举例
5.3.工等价类划分问题
5.3.2 模拟递归问题
5.3.3 电路板布线问题
习题5
数据结构与算法实验5
数据结构与算法实验题5.1 车皮编序问题
数据结构与算法实验题5.2 单柱Hanoi塔问题
数据结构与算法实验题5.3 多栈模拟问题
数据结构与算法实验题5.4 亲兄弟问题

第6章 队列
6.1 队列的基本概念
6.2 队列的实现方法
6.3 应用举例
6.3.1 最优电路布线问题
6.3.2 和谐短信问题
习题6
数据结构与算法实验6
数据结构与算法实验题6.1 组队列问题
数据结构与算法实验题6.2 双栈队列问题
数据结构与算法实验题6.3 猴子分桃问题
数据结构与算法实验题6.4 逆序表问题

第7章 排序与选择
7.1 简单排序算法
7.1.1 冒泡排序算法
7.1.2 插入排序算法
7.1.3 选择排序算法
7.1.4 简单排序算法的计算复杂性
7.2 快速排序算法
7.2.1 算法基本思想及实现
7.2.2 算法性能分析
7.2.3 随机快速排序算法
7.3 合并排序算法
7.3.1 算法基本思想及实现
7.3.2 消除递归
7.3.3 自然合并排序算法
7.4 链表排序与索引排序算法
7.4.1 链表排序算法
7.4.2 索引排序算法
7.5 线性时间排序算法
7.5.1 计数排序算法
7.5.2 桶排序算法
7.6 中位数与第k小元素
7.6.1 平均情况下的线性时间选择算法
7.6.2 最坏情况下的线性时间选择算法
7.7 泛型排序算法
7.7.1 排序算法的泛化方法
7.7.2 泛型合并排序算法
7.7.3 泛型快速排序算法
……
第8章 树
第9章 二叉搜索树
第10章 平衡搜索树
第11章 集合
第12章 映射
第13章 散列
第14章 堆与优先队列
第15章 并查集
第16章 图
参考文献
……
序言 21世纪是知识经济的时代,是人才竞争的时代。随着21世纪的到来,人类已步人信息社会,信息产业正成为全球经济的主导产业。计算机科学与技术在信息产业中占据了最重要的地位,这就对培养21世纪高素质创新型计算机专业人才提出了迫切的要求。
为了培养高素质创新型人才,必须建立高水平的教学计划和课程体系。在20多年跟踪分析ACM和IEEE计算机课程体系的基础上,紧跟计算机科学与技术的发展潮流,及时制定并修正教学计划和课程体系是尤其重要的。计算机科学与技术的发展对高水平人才的要求,需要我们从总体上优化课程结构,精炼教学内容,拓宽专业基础,加强教学实践,特别注重综合素质的培养,形成“基础课程精深,专业课程宽新”的格局。
为了适应计算机科学与技术学科发展和计算机教学计划的需要,要采取多种措施鼓励长期从事计算机教学和科技前沿研究的专家教授积极参与计算机专业教材的编著和更新,在教材中及时反映学科前沿的研究成果与发展趋势,以高水平的科研促进教材建设。同时适当引进国外先进的原版教材。
为了提高教学质量,需要不断改革教学方法与手段,倡导因材施教,强调知识的总结、梳理、推演和挖掘,通过加快教案的不断更新,使学生掌握教材中未及时反映的学科发展新动向,进一步拓宽视野。教学与科研相结合是培养学生实践能力的有效途径。高水平的科研可以为教学提供最先进的高新技术平台和创造性的工作环境,使学生得以接触最先进的计算机理论、技术和环境。高水平的科研还可以为高水平人才的素质教育提供良好的物质基础。学生在课题研究中不但能了解科学研究的艰辛和科研工作者的奉献精神,而且能熏陶和培养良好的科研作风,锻炼和培养攻关能力和协作精神。
进入21世纪,我国高等教育进入了前所未有的大发展时期,时代的进步与发展对高等教育质量提出了更高、更新的要求。2001年8月,教育部颁发了《关于加强高等学校本科教学工作,提高教学质量的若干意见》。文件指出,本科教育是高等教育的主体和基础,抓好本科教学是提高整个高等教育质量的重点和关键。随着高等教育的普及和高等学校的扩招,在校大学本科计算机专业学生的人数将大量上升,对适合21世纪大学本科计算机科学与技术学科课程体系要求的,并且适合中国学生学习的计算机专业教材的需求量也将急剧增加。为此,中国计算机学会和清华大学出版社共同规划了面向全国高等院校计算机专业本科生的“21世纪大学本科计算机专业系列教材”。本系列教材借鉴美国ACM和IEEE最新制定的COmputing Currcula 2005(简称CC2005)课程体系,反映当代计算机科学与技术学科水平和计算机科学技术的新发展、新技术,并且结合中国计算机教育改革成果和中国国情。
文摘 插图:


第1章 算法与数据结构引论
1.1 算法及其复杂性的概念
1.1.1 算法与程序
对于计算机科学来说,算法(algorithm)的概念至关重要。例如在大型软件系统的开发中,设计出有效的算法将起决定性的作用。
算法是由若干条指令组成的有穷序列,且满足下述几条性质。
(1)输入:有若干个由外部提供的量作为算法的输入。
(2)输出:算法产生至少一个量作为输出。
(3)确定性:组成算法的每条指令是清晰,无歧义的。
(4)有限性:算法中每条指令的执行次数有限,执行每条指令的时间也是有限的。
程序(program)是算法用某种程序设计语言的具体实现。程序可以不满足算法的性质(4)。例如操作系统,它是一个在无限循环中执行的程序,因而不是一个算法。然而可把操作系统的各种任务看成是一些单独的问题,每一个问题由操作系统中的一个子程序通过特定的算法来实现。该子程序得到输出结果后便终止。
1.1.2 算法复杂性的概念
一个算法的复杂性的高低体现在运行该算法需要多少计算机资源。所需要的资源越多,算法的复杂性越高。所需要的资源越少,算法的复杂性就越低。最重要的计算机的资源是时间和空间资源。
热点排行