书名:清华大学计算机系列教材:数据结构(用面向对象方法与C++语言描述)(第2版)
:46.00元
作者:殷人昆
出版社:清华大学出版社
出版日期:2007-06-01
ISBN:9787302148111
字数:
页码:512
版次:2
装帧:平装
开本:16开
商品重量:0.781kg
编辑推荐
内容提要
数据结构是计算机专业的核心课程,是从事计算机软件开发和应用人员必备的专业基础。随着计算机的日益普及,“数据结构”课程也在不断地发展。
《清华大学计算机系列教材:数据结构(用面向对象方法与C++语言描述)(第2版)》按照清华大学计算机系本科“数据结构”大纲的要求,从面向对象的概念、对象类设计的风格和数据结构的层次开始,从线性结构到非线性结构,从简单到复杂,深入地讨论了各种数据结构内在的逻辑关系及其在计算机中的实现方式和使用。此外,对常用的迭代、递归、回溯等算法设计技巧'搜索和排序算法等都做了详尽的描述,并引入了简单的算法分析。
全书采用面向对象的观点讨论数据结构技术,并以兼有面向过程和面向对象双重特色的C++语言作为算法的描述工具,强化基本知识和基本能力的双基训练。全书条理清晰,通俗易懂,图文并茂,适于自学。
与《清华大学计算机系列教材:数据结构(用面向对象方法与C++语言描述)(第2版)》配套的《数据结构习题解析一用面向对象方法与C++语言描述》一书已经由清华大学出版社出版。《清华大学计算机系列教材:数据结构(用面向对象方法与C++语言描述)(第2版)》适合大专院校计算机、软件专业本科生使用,也可作为教师和有关科研人员的参考书。
目录
第1章 数据结构概论
1.1 数据结构的概念
1.1.1 数据结构举例
1.1.2 数据与数据结构
1.1.3 数据结构的分类
1.1.4 数据结构课程的内容
1.2 数据结构的抽象形式
1.2.1 数据类型
1.2.2 数据抽象与抽象数据类型
1.3 作为ADT的C++类
1.3.1 面向对象的概念
1.3.2 C++中的类
1.3.3 C++中的对象
1.3.4 C++的输入输出
1.3.5 C++中的函数
1.3.6 动态存储分配
1.3.7 C++中的继承
1.3.8 多态性
1.3.9 C++的模板
1.4 算法定义
1.5 算法性能分析与度量
1.5.1 算法的性能标准
1.5.2 算法的后期测试
1.5.3 算法的事前估计
1.5.4 算法的渐进分析
1.5.5 坏、好和平均情况
习题
第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.3.5 单链表的模板类
2.4 线性链表的其他变形
2.4.1 循环链表
2.4.2 双向链表
2.5 单链表的应用:多项式及其运算
2.5.1 多项式的表示
2.5.2 多项式的类定义
2.5.3 多项式的加法
2.5.4 多项式的乘法
2.6 静态链表
习题
第3章 栈和队列
3.1 栈
3.1.1 栈的定义
3.1.2 顺序栈
3.1.3 链式栈
3.1.4 栈的应用之一——括号匹配
3.1.5 栈的应用之二——表达式的计算
3.2 栈与递归
3.2.1 递归的概念
3.2.2 递归过程与递归工作栈
3.2.3 用回溯法求解迷宫问题
3.3 队列
3.3.1 队列的概念
3.3.2 循环队列
3.3.3 链式队列
3.3.4 队列应用举例:打印二项展开式(a+b)i的系数
3.3.5 队列应用举例:电路布线
3.4 优先级队列
3.4.1 优先级队列的概念
3.4.2 优先级队列的存储表示和实现
……
第4章 数组、串与广义表
第5章 树
第6章 集合与字典
第7章 搜索结构
第8章 图
第9章 排序
第10章 文件、外部排序与搜索
附录A 程序索引
附录B 词汇索引
参考文献
作者介绍
文摘
序言
第1章 数据结构概论
1.1 数据结构的概念
1.1.1 数据结构举例
1.1.2 数据与数据结构
1.1.3 数据结构的分类
1.1.4 数据结构课程的内容
1.2 数据结构的抽象形式
1.2.1 数据类型
1.2.2 数据抽象与抽象数据类型
1.3 作为ADT的C++类
1.3.1 面向对象的概念
1.3.2 C++中的类
1.3.3 C++中的对象
1.3.4 C++的输入输出
1.3.5 C++中的函数
1.3.6 动态存储分配
1.3.7 C++中的继承
1.3.8 多态性
1.3.9 C++的模板
1.4 算法定义
1.5 算法性能分析与度量
1.5.1 算法的性能标准
1.5.2 算法的后期测试
1.5.3 算法的事前估计
1.5.4 算法的渐进分析
1.5.5 坏、好和平均情况
习题
第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.3.5 单链表的模板类
2.4 线性链表的其他变形
2.4.1 循环链表
2.4.2 双向链表
2.5 单链表的应用:多项式及其运算
2.5.1 多项式的表示
2.5.2 多项式的类定义
2.5.3 多项式的加法
2.5.4 多项式的乘法
2.6 静态链表
习题
第3章 栈和队列
3.1 栈
3.1.1 栈的定义
3.1.2 顺序栈
3.1.3 链式栈
3.1.4 栈的应用之一——括号匹配
3.1.5 栈的应用之二——表达式的计算
3.2 栈与递归
3.2.1 递归的概念
3.2.2 递归过程与递归工作栈
3.2.3 用回溯法求解迷宫问题
3.3 队列
3.3.1 队列的概念
3.3.2 循环队列
3.3.3 链式队列
3.3.4 队列应用举例:打印二项展开式(a+b)i的系数
3.3.5 队列应用举例:电路布线
3.4 优先级队列
3.4.1 优先级队列的概念
3.4.2 优先级队列的存储表示和实现
……
第4章 数组、串与广义表
第5章 树
第6章 集合与字典
第7章 搜索结构
第8章 图
第9章 排序
第10章 文件、外部排序与搜索
附录A 程序索引
附录B 词汇索引
参考文献
我在学校里学习过数据结构,也写过一些C++的代码,但总觉得自己的数据结构功底不够扎实,尤其是在面试和实际工作中,经常会遇到一些关于数据结构设计和优化的面试题。这本书的标题“数据结构(用面向对象方法与C++语言描述)”正好是我急需的。我希望这本书能够帮我巩固对经典数据结构的理解,比如各种树(二叉树、平衡树、B树等)、图的遍历和搜索算法,以及哈希表等。更重要的是,我期待它能教会我如何运用面向对象的设计思想,结合C++的特性,来编写出更符合工程实践的数据结构代码。我希望书中能够有详细的章节讲解如何设计和实现可复用、易扩展的数据结构类库,比如如何利用模板实现泛型数据结构,如何利用继承和多态来处理不同数据类型的存储和操作。我特别关注书中对于算法复杂度分析的内容,希望能够看到结合面向对象实现的复杂度分析,以及如何通过面向对象的设计来优化算法的性能。我担心的是,如果这本书的讲解过于理论化,或者代码示例不够清晰,可能无法帮助我真正提升解决实际问题的能力。
评分初次接触数据结构,尤其还是用面向对象的方法和C++来描述,说实话,心里没底。我之前学的C语言基础还算扎实,但面向对象这个概念对我来说就像一层窗户纸,总感觉隔着点什么。这本书的标题“面向对象方法与C++语言描述”直接戳中了我的痛点,也让我看到了希望。翻开目录,看到那些熟悉又陌生的名词,比如类、对象、继承、多态,还有各种经典的数据结构,像链表、栈、队列、树、图等等,心里既紧张又充满期待。书中的例子是不是足够生动形象?会不会有很多理论性的陈述,让我看得云里雾里?我最希望的是,它能循序渐进,从最基础的概念讲起,用C++的代码实例来验证和解释每一个抽象的概念,让我能够真正理解面向对象思想在数据结构设计中的应用。特别是那些涉及到抽象数据类型(ADT)的章节,我希望作者能清晰地展示如何通过面向对象的封装和抽象来定义和实现这些ADT,而不是简单地给出代码。毕竟,理解“为什么”比“怎么做”更重要。我担心的是,如果理论讲解过于晦涩,或者代码示例不够贴切,我可能会在半途而废,这对于我这样一个需要系统学习数据结构的人来说,将是很大的打击。所以,我特别看重这本书的讲解方式和案例的有效性。
评分我对C++语言本身有浓厚的兴趣,也已经掌握了C++的基础语法和一些高级特性,但我总觉得在实际的项目开发中,对数据结构的运用还不够得心应手。我希望这本书能够将C++的强大功能与经典的数据结构理论完美结合,提供一些更贴近实际开发场景的例子。我期待书中不仅能介绍各种数据结构的基本概念和算法,更能展示如何利用C++的面向对象特性,如封装、继承、多态、模板等,来设计出高效、健壮、易于维护的数据结构。例如,我希望看到如何利用模板来编写通用的数据结构,如何利用继承和多态来处理不同类型的数据,以及如何通过封装来隐藏实现的细节,提高代码的可读性和安全性。我希望书中能有一些关于如何选择合适的数据结构来解决实际问题的指导,而不是仅仅停留在理论层面。如果书中能够提供一些实际的工程案例,哪怕是简化的,那对我来说将是极大的帮助。我担心的是,这本书会不会过于侧重理论,而缺乏实际的应用指导,那样的话,我可能会在读完之后,依然不知道如何在实际开发中灵活运用这些知识。
评分我是一个对计算机科学理论非常着迷的学习者,一直对数据结构背后的精妙算法和设计思想感到好奇。虽然我目前接触到的编程语言不一定是C++,但我对不同编程范式在解决问题上的优劣非常感兴趣。这本书以面向对象的方法描述数据结构,这对我来说是一个全新的视角。我希望它能让我理解,为什么面向对象这种思想,在数据结构的抽象和实现上能够带来如此显著的提升。我期待书中能深入探讨面向对象设计原则(如SOLID原则)在数据结构设计中的体现,以及如何通过C++的特性,如类、对象、接口、抽象基类等,来具体实现这些原则。我希望能够看到,作者是如何将抽象数据类型(ADT)的概念,通过面向对象的方式,清晰地映射到具体的C++类和对象上的。我更希望的是,这本书能够教会我一种“思考”数据结构的方式,一种用对象和交互来理解和构建复杂系统的能力,而不仅仅是学习一些算法的实现。我担心的是,如果书中过于强调C++的语法细节,而忽略了面向对象思想的本质,那么这本书的价值对我来说就会大打.
评分我是一位正在准备考研的学生,目标院校的数据结构考试大纲里明确提到了“面向对象方法”的要求,这让我不得不重新审视我之前学习的数据结构知识。我之前学习的可能更多是偏向于过程式的方法,虽然也理解了基本的数据结构原理,但在面向对象的思想上确实存在短板。这本书的出现,简直像及时雨。我期待它能帮助我建立起一套完整的面向对象的思维模式,并将这种思维模式应用到数据结构的设计和实现中。我希望书中能够深入剖析如何利用C++的特性,比如类、模板、继承、多态等,来优雅地实现各种数据结构,并且能够清晰地阐述为什么这种面向对象的实现方式比传统的过程式方法更具优势,例如更高的可维护性、可复用性和可扩展性。尤其是在讲解一些复杂的算法时,我希望作者能通过面向对象的视角,将问题分解成一个个相互协作的对象,从而简化问题的复杂性。我担心的是,如果这本书的面向对象讲解不够深入,或者 C++ 的应用不够贴合数据结构的需求,那么它对我考研的帮助可能就会有限。我希望能找到一本真正能提升我面向对象数据结构能力的宝典。
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 book.cndgn.com All Rights Reserved. 新城书站 版权所有