数据结构:基于C++模板类的实现
|
基本信息
内容简介回到顶部↑
本书采用能够自然体现抽象数据类型概念的c++ 语言作为算法描述语言,把数据结构的原理和算法分析技术有机地结合在一起。全书内容包括线性表、栈、队列、递归、广义表、字符串、数组、树、图、查找以及各种排序算法,并给出了相关的实验指导。书中还引入了一些比较高级的数据结构和相关的算法分析技术。
本书可作为高等院校计算机或相关专业的教材,也可以作为其他程序类课程的辅导教材,同时也适用准备参加研究生入学考试、自学考试和各类程序设计竞赛的人员阅读。
本书可作为高等院校计算机或相关专业的教材,也可以作为其他程序类课程的辅导教材,同时也适用准备参加研究生入学考试、自学考试和各类程序设计竞赛的人员阅读。
作译者回到顶部↑
本书提供作译者介绍
余腊生,中南大学副教授。主讲计算机专业本科“数据结构”和“计算机系统结构”课程以及研究生“软件构件技术”课程多年,其中“数据结构”课程被评为“中南大学精品课程”。主持和参加了包括国家863应用示范工程和湖南省自然科学基金项目在内的10多个科研项目,在国内外专业核心刊物发表论文30多篇,EI检索多篇。主要研究方向为Agent理论及其计算技术、结构与算法、网络数据库技术等。
.. << 查看详细
.. << 查看详细
目录回到顶部↑
第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.3.4 算法描述
1.3.5 算法性能分析与度量
习题
实习题
第2章 线性表
2.1 线性表的逻辑结构
2.1.1 线性表的定义
2.1.2 线性表的基本操作
2.2 线性表的顺序存储及操作实现
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.3.4 算法描述
1.3.5 算法性能分析与度量
习题
实习题
第2章 线性表
2.1 线性表的逻辑结构
2.1.1 线性表的定义
2.1.2 线性表的基本操作
2.2 线性表的顺序存储及操作实现
前言回到顶部↑
学生的头脑不是一个等待填满的容器,而是一支需要被点燃的火把。.
——杨家福
我们生活在一个物质世界中,同时又时刻面对着一个数字的世界。如果将物质世界中的事与物数字化,那么它们在计算机中均表现为数据。这些数据来源于现实,具有具体的含义,而且在计算机中有着统一的表示方法,因而成为计算机程序处理的符号集合。研究数据在计算机中的表示方法、关联方法、存储方法以及典型处理方法,正是数据结构课程的主要内容。
早在20世纪80年代初,“数据结构”就已成为国内高校计算机专业教学计划中的核心课程。目前,ACM/IEEE计算学科课程计划(CC-2001)已将算法与数据结构类课程列为核心课程之首,数据结构愈益显现出其在信息学科理论中的重要地位。
在软件系统的开发过程中,数据结构的思维方法在本质上不同于常规数学训练的公理系统思维方法,而是一种算法构造性思维方法。所谓构造性思维方法就是要让学生理解、习惯并掌握算法的一种思维方法,也是本门课程教学的重要内容和主要难点。要成为专业的软件开发人员,仅仅知道开发工具的语言规则和简单使用过程是远远不够的,只有培养自身的数据抽象能力、算法设计能力,掌握创造性思维方法,举一反三,触类旁通,才能够具备应用知识解决复杂问题的能力。
本书是作者根据多年的教学经验,结合当前计算机科学技术的发展,并参考了众多的数据结构教材编著而成的。书中采用了能够自然体现抽象数据类型概念的C++语言作为算法描述语言,内容覆盖了数据结构课程的教学大纲,从数据类型角度系统地介绍了各种数据结构的逻辑特性、存储表示方法及基本操作算法,并针对常用的数据结构进一步讨论了各种应用算法及其实现方法。本书旨在培养学生分析计算机加工数据对象特征的能力,以便在实际操作中选择合适的数据结构和存储结构以及相应的算法,同时帮助学生掌握估算算法叫:间复杂度和空间复杂度的基本技巧。
本书将数据结构的原理和算法分析技术有机地结合在一起,使用了参数化的模板,提高了算法中数据类型的通用性,支持高效的代码重用。书中介绍和分析重点设计思想时,结合了大量图解和具体示例,使读者能够联系实际,掌握数据结构的实质内容。此外,本书还介绍了一些比较高级的数据结构及相关的算法分析技术。..
习题的选择和设计是教材编写的一个重要方面,本书在这方面充分考虑了习题的完整性、系统性和典型性。概念题覆盖了每章基本内容要点,读者学习完每章后,应以这部分习题为提纲,透彻理解每章的基本内容以及相关的基本概念;算法设计题既是每章内容的延伸,也是对读者理解程度的检查。另外,数据结构课程要安排一定课时的上机实习,实习题就是专为此目的而设计的。
全书包括10章和一个附录。第1章综述数据、数据结构和抽象数据类型的基本概念,介绍算法分析和评价的基本思想;第2章讲述的线性表是一种最典型的线性结构;第3章介绍的栈和队列是一些常用的操作受限的特殊线性表;第4章介绍程序设计的基本技术(递归技术)以及线性表的推广(广义表);第5章介绍应用广泛的字符串结构类型;第6章讨论的是工程中应用非常普遍的数组与矩阵类型;第7章讨论树形结构,包括树和二叉树结构;第8章讨论可以表达复杂数据关系并且应用非常广泛的图结构:第9章讨论查找方法及数据的组织结构;第10章介绍各种常见的排序方法;附录介绍数据结构的实验环节,包括课程设计的规范和示例。
使用本教材授课约需54-70课时,其中包括10课时左右的上机实习。课时数较少时,书中标有“*”号的内容可不讲授。
本书可作为普通高等院校计算机相关专业数据结构课程的教材,也可作为信息类相关专业的教材和教学参考书,同时也是自学考试应试人员、程序设计竞赛参赛人员和软件开发人员的参考资料。本书对于准备参加研究生入学考试的人员以及从事计算机应用工作的科技工作者,也是一本实用的参考书。
在本书的成书过程中,我们得到了人民邮电出版社图灵公司的大力支持。中南大学信息学院教授、博士生导师陈松乔教授为本书的编写提出了不少建议。此外,中南大学信息学院计算机专业的研究生李徐、洪飞、王鹏人、徐漾等同学参与了书中有关代码的设计与调试工作,建立了中南大学数据结构精品课程网站。在此一并表示感谢。
由于作者水平所限,书中难免出现疏漏和错误之处,恳请广大读者指正。...
作者
2008年7月
——杨家福
我们生活在一个物质世界中,同时又时刻面对着一个数字的世界。如果将物质世界中的事与物数字化,那么它们在计算机中均表现为数据。这些数据来源于现实,具有具体的含义,而且在计算机中有着统一的表示方法,因而成为计算机程序处理的符号集合。研究数据在计算机中的表示方法、关联方法、存储方法以及典型处理方法,正是数据结构课程的主要内容。
早在20世纪80年代初,“数据结构”就已成为国内高校计算机专业教学计划中的核心课程。目前,ACM/IEEE计算学科课程计划(CC-2001)已将算法与数据结构类课程列为核心课程之首,数据结构愈益显现出其在信息学科理论中的重要地位。
在软件系统的开发过程中,数据结构的思维方法在本质上不同于常规数学训练的公理系统思维方法,而是一种算法构造性思维方法。所谓构造性思维方法就是要让学生理解、习惯并掌握算法的一种思维方法,也是本门课程教学的重要内容和主要难点。要成为专业的软件开发人员,仅仅知道开发工具的语言规则和简单使用过程是远远不够的,只有培养自身的数据抽象能力、算法设计能力,掌握创造性思维方法,举一反三,触类旁通,才能够具备应用知识解决复杂问题的能力。
本书是作者根据多年的教学经验,结合当前计算机科学技术的发展,并参考了众多的数据结构教材编著而成的。书中采用了能够自然体现抽象数据类型概念的C++语言作为算法描述语言,内容覆盖了数据结构课程的教学大纲,从数据类型角度系统地介绍了各种数据结构的逻辑特性、存储表示方法及基本操作算法,并针对常用的数据结构进一步讨论了各种应用算法及其实现方法。本书旨在培养学生分析计算机加工数据对象特征的能力,以便在实际操作中选择合适的数据结构和存储结构以及相应的算法,同时帮助学生掌握估算算法叫:间复杂度和空间复杂度的基本技巧。
本书将数据结构的原理和算法分析技术有机地结合在一起,使用了参数化的模板,提高了算法中数据类型的通用性,支持高效的代码重用。书中介绍和分析重点设计思想时,结合了大量图解和具体示例,使读者能够联系实际,掌握数据结构的实质内容。此外,本书还介绍了一些比较高级的数据结构及相关的算法分析技术。..
习题的选择和设计是教材编写的一个重要方面,本书在这方面充分考虑了习题的完整性、系统性和典型性。概念题覆盖了每章基本内容要点,读者学习完每章后,应以这部分习题为提纲,透彻理解每章的基本内容以及相关的基本概念;算法设计题既是每章内容的延伸,也是对读者理解程度的检查。另外,数据结构课程要安排一定课时的上机实习,实习题就是专为此目的而设计的。
全书包括10章和一个附录。第1章综述数据、数据结构和抽象数据类型的基本概念,介绍算法分析和评价的基本思想;第2章讲述的线性表是一种最典型的线性结构;第3章介绍的栈和队列是一些常用的操作受限的特殊线性表;第4章介绍程序设计的基本技术(递归技术)以及线性表的推广(广义表);第5章介绍应用广泛的字符串结构类型;第6章讨论的是工程中应用非常普遍的数组与矩阵类型;第7章讨论树形结构,包括树和二叉树结构;第8章讨论可以表达复杂数据关系并且应用非常广泛的图结构:第9章讨论查找方法及数据的组织结构;第10章介绍各种常见的排序方法;附录介绍数据结构的实验环节,包括课程设计的规范和示例。
使用本教材授课约需54-70课时,其中包括10课时左右的上机实习。课时数较少时,书中标有“*”号的内容可不讲授。
本书可作为普通高等院校计算机相关专业数据结构课程的教材,也可作为信息类相关专业的教材和教学参考书,同时也是自学考试应试人员、程序设计竞赛参赛人员和软件开发人员的参考资料。本书对于准备参加研究生入学考试的人员以及从事计算机应用工作的科技工作者,也是一本实用的参考书。
在本书的成书过程中,我们得到了人民邮电出版社图灵公司的大力支持。中南大学信息学院教授、博士生导师陈松乔教授为本书的编写提出了不少建议。此外,中南大学信息学院计算机专业的研究生李徐、洪飞、王鹏人、徐漾等同学参与了书中有关代码的设计与调试工作,建立了中南大学数据结构精品课程网站。在此一并表示感谢。
由于作者水平所限,书中难免出现疏漏和错误之处,恳请广大读者指正。...
作者
2008年7月
书摘回到顶部↑
第1章绪论
计算机科学是一门研究数据表示和数据处理的科学。数据是计算机可以直接处理的最基本和最重要的对象。无论是科学计算、数据处理和过程控制,还是对文件的存储和检索,都是对数据进行处理的过程。因此,要设计出一个结构好、效率高的程度,必须研究数据的特性、数据间的相互关系及与其对应的存储结构,并利用这些特性和关系设计出相应的算法。
……
计算机科学是一门研究数据表示和数据处理的科学。数据是计算机可以直接处理的最基本和最重要的对象。无论是科学计算、数据处理和过程控制,还是对文件的存储和检索,都是对数据进行处理的过程。因此,要设计出一个结构好、效率高的程度,必须研究数据的特性、数据间的相互关系及与其对应的存储结构,并利用这些特性和关系设计出相应的算法。
……

点击看大图


加载中...
