华信教育资源网
数据结构(C++版)(第3版)
作   译   者:叶核亚 出 版 日 期:2014-02-01
出   版   社:电子工业出版社 维   护   人:章海涛 
书   代   号:G0219850 I S B N:9787121219856

图书简介:

本书全面系统地介绍数据结构的基础理论和算法设计方法,包括线性表、树、图等数据结构以及查找和排序算法。内容涉及的广度和深度符合计算机专业本科的基本要求,体现了本科教学的培养目标。本书采用C++语言以面向对象方法描述数据结构和算法。本书理论叙述精练,结构安排合理,重点是数据结构设计和算法设计,通过降低理论难度和抽象性、加强实践环节等措施,力求增强学生的理解能力和应用能力。本书有配套的教学资料包,包括电子课件、源代码及习题解答等。
定价 42.0
您的专属联系人更多
配套资源 图书内容 样章/电子教材 图书评价
  • 配 套 资 源
    图书特别说明:

    本书资源

    本书暂无资源

    会员上传本书资源

  • 图 书 内 容

    内容简介

    本书全面系统地介绍数据结构的基础理论和算法设计方法,包括线性表、树、图等数据结构以及查找和排序算法。内容涉及的广度和深度符合计算机专业本科的基本要求,体现了本科教学的培养目标。 本书采用C++语言以面向对象方法描述数据结构和算法。本书理论叙述精练,结构安排合理,重点是数据结构设计和算法设计,通过降低理论难度和抽象性、加强实践环节等措施,力求增强学生的理解能力和应用能力。 本书有配套的教学资料包,包括电子课件、源代码及习题解答等。

    图书详情

    ISBN:9787121219856
    开 本:16开
    页 数:328
    字 数:525

    本书目录

    目    录
    第1章  绪论	1
    1.1  数据结构的基本概念	1
    1.1.1  为什么要学习数据结构	1
    1.1.2  什么是数据结构	2
    1.1.3  数据类型与抽象数据类型	5
    1.2  算法	7
    1.2.1  什么是算法	7
    1.2.2  算法分析	9
    1.2.3  算法设计	12
    1.3  Visual C++集成开发环境	14
    1.3.1  Visual C++ 2008集成开发环境	14
    1.3.2  新建、编辑、编译和运行C++程序	16
    1.3.3  程序调试技术	20
    习题1	23
    实验1  算法设计与分析	24
    第2章  线性表	25
    2.1  线性表抽象数据类型	25
    2.2  线性表的顺序存储和实现	26
    2.2.1  线性表的顺序存储结构	26
    2.2.2  顺序表	28
    2.2.3  排序顺序表	41
    2.3  线性表的链式存储和实现	49
    2.3.1  线性表的链式存储结构	49
    2.3.2  单链表	50
    2.3.3  双链表	63
    2.4  线性表的应用:多项式的表示及运算	68
    2.4.1  一元多项式的表示及运算	68
    2.4.2  二元多项式的表示及运算	70
    习题2	71
    实验2  线性表的基本操作	71
    第3章  串	75
    3.1  串抽象数据类型	75
    3.2  串的存储和实现	76
    3.2.1  串的存储结构	76
    3.2.2  使用char*表示字符串存在错误	77
    3.2.3  字符串类	79
    3.3  串的模式匹配	83
    3.3.1  Brute-Force算法	84
    3.3.2  KMP算法	88
    习题3	95
    实验3  串的基本操作及模式匹配算法	95
    第4章  栈和队列	98
    4.1  栈	98
    4.1.1  栈抽象数据类型	98
    4.1.2  顺序栈	99
    4.1.3  链式栈	100
    4.1.4  栈的应用	101
    4.2  队列	107
    4.2.1  队列抽象数据类型	107
    4.2.2  顺序队列	107
    4.2.3  链式队列	110
    4.2.4  队列的应用	112
    4.3  优先队列	113
    4.4  递归	116
    习题4	121
    实验4  栈和队列以及递归算法	122
    第5章  数组和广义表	125
    5.1  数组	125
    5.2  特殊矩阵的压缩存储	131
    5.2.1  三角矩阵、对称矩阵和对角矩阵的压缩存储	131
    5.2.2  稀疏矩阵的压缩存储	133
    5.3  广义表	139
    习题5	143
    实验5  特殊矩阵和广义表的存储和运算	144
    第6章  树和二叉树	146
    6.1  树及其抽象数据类型	146
    6.1.1  树定义	146
    6.1.2  树的术语	147
    6.1.3  树的表示法	148
    6.1.4  树抽象数据类型	148
    6.2  二叉树	149
    6.2.1  二叉树定义	149
    6.2.2  二叉树性质	150
    6.2.3  二叉树的遍历及构造规则	151
    6.2.4  二叉树的存储结构	154
    6.2.5  二叉树的二叉链表实现	156
    6.3  线索二叉树	168
    6.3.1  线索二叉树定义	168
    6.3.2  中序线索二叉树	170
    6.4  Huffman树	176
    6.4.1  Huffman编码	176
    6.4.2  Huffman树及其构造算法	177
    6.5  树的表示和实现	184
    6.5.1  树的遍历规则	184
    6.5.2  树的存储结构	184
    6.5.3  树的父母孩子兄弟链表实现	185
    习题6	188
    实验6  树和二叉树的基本操作	190
    第7章  图	193
    7.1  图及其抽象数据类型	193
    7.1.1  图的基本概念	193
    7.1.2  图抽象数据类型	197
    7.2  图的表示和实现	197
    7.2.1  图的邻接矩阵表示和实现	197
    7.2.2  图的邻接表表示和实现	205
    7.2.3  图的邻接多重表表示	211
    7.3  图的遍历	212
    7.3.1  图的深度优先搜索遍历	213
    7.3.2  图的广度优先搜索遍历	216
    7.4  最小生成树	218
    7.4.1  生成树	218
    7.4.2  最小生成树的构造算法	220
    7.5  最短路径	224
    7.5.1  单源最短路径	224
    7.5.2  每对顶点间的最短路径	229
    习题7	233
    实验7  图的表示和操作	234
    第8章  查找	235
    8.1  查找的基本概念	235
    8.2  基于排序顺序表的二分法查找	237
    8.3  基于索引表的分块查找	239
    8.4  散列	244
    8.5  二叉排序树和平衡二叉树	252
    8.5.1  二叉排序树	252
    8.5.2  平衡二叉树	257
    习题8	261
    实验8  查找算法	262
    第9章  排序	263
    9.1  排序的基本概念	263
    9.2  插入排序	264
    9.2.1  直接插入排序和折半插入排序	264
    9.2.2  希尔排序	266
    9.3  交换排序	268
    9.3.1  冒泡排序	268
    9.3.2  快速排序	269
    9.4  选择排序	272
    9.4.1  直接选择排序	272
    9.4.2  堆排序	273
    9.5  归并排序	277
    9.6  单/双链表的排序算法	279
    习题9	283
    实验9  排序算法设计及分析	283
    第10章  综合应用设计	285
    10.1  算法设计策略	285
    10.1.1  分治法	285
    10.1.2  动态规划法	287
    10.1.3  贪心法	289
    10.1.4  回溯法	300
    10.2  课程设计的目的、要求和选题	311
    附录A  ASCII码表(前128个)	316
    附录B  C++运算符及其优先级	317
    参考文献	318
    展开

    前     言

    第3版前言
    数据结构是软件设计的重要理论和实践基础,数据结构设计和算法设计是软件系统设计的核心。“数据结构”课程讨论的知识内容是软件设计的理论基础,“数据结构”课程介绍的技术方法是软件设计中使用的基本方法。“数据结构”是理论与实践并重的课程,不仅要掌握数据结构的基础理论知识,还要掌握算法设计和分析方法,以及运行和调试程序的基本技能。因此,“数据结构”课程在计算机类各专业本科学生的培养过程中有着十分重要的地位,是计算机类专业的一门核心课程,是培养程序设计能力的必不可少的重要环节。
    “数据结构”课程内容多,概念抽象,理论深奥,递归算法难度较大,一直是计算机专业最难学的课程之一。本书精选基础理论内容,重点是数据结构设计和算法设计,通过降低理论难度和抽象性、加强实践环节等措施,进一步增强学生的理解能力和应用能力,力求取得较好的教学效果。
    本书的特色说明如下。
    (1)内容全面、注重基础
    本书全面、系统地介绍数据结构的基础理论和算法设计方法,阐明线性表、树、图等数据模型的逻辑结构,讨论它们在计算机中的存储结构,讨论每种数据结构所能进行的多种操作,以及这些操作的算法设计与实现;针对软件设计中应用频繁的查找和排序问题,根据不同数据结构对操作的实际需求,给出多种查找和排序算法,并分析算法的执行效率。
    本书内容选择适合工科院校,理论叙述精练,简明扼要,结构安排合理,由浅入深,层次分明,重点突出,算法分析透彻,程序结构严谨规范。内容涉及的广度和深度符合本科培养目标的要求。
    (2)采用C++语言和面向对象程序设计思想描述数据结构和算法
    数据结构和算法的设计不依赖于程序设计语言,但数据结构和算法的实现依赖于程序设计语言。描述数据结构所采用的软件方法和算法语言,需要随着软件方法及算法语言的不断发展而发展。面向对象程序设计方法是软件分析、设计和实现的新方法,是目前软件开发的主流方法。
    C++语言是目前功能最强、应用广泛的支持面向对象程序设计的代表语言。C++语言具备表达数据结构和算法的基本要素。因此,采用C++语言描述数据结构和算法不仅可行,也是“数据结构”课程内容教学改革的必然,完全符合本科培养目标的要求。本书采用C++语言描述数据结构和算法,算法以函数方式呈现,函数有明确的输入参数和返回值,以面向对象程序设计思想贯穿始终,使“数据结构”课程真正成为有效培养程序设计能力的训练课程,并与程序设计语言课程更好地衔接。
    本书只是借用C++语言作为数据结构和算法的描述语言,重点仍是数据结构和算法设计本身,而不是表现C++语言的复杂技术。因此,使用C++语言的基本原则是,尽可能使用C++语言的最基本成分(如数据类型、数组、函数、指针、类等)描述数据结构和表达算法设计思想,展现原始设计能力,使程序简洁、明了,算法思路清楚、明白,淡化或回避C++语言的友元类、多重继承等技术。
    当一个问题有多种解决办法时,尽可能采用简单、直接并且不造成歧义的办法。例如,对数组元素进行操作,尽量采用下标形式,避免使用指针形式;函数的返回结果尽量采用返回值形式,避免使用指针的指针;构造函数尽量避免采用默认值而造成的歧义等。
    (3)增强实际应用
    “数据结构”是一门理论和实践紧密结合的课程,要在透彻理解理论知识的基础上,通过实践性环节,逐步锻炼程序设计能力。
    注重传授基础理论知识,注重在实践环节中培养程序设计的基本技能,是本书的重要特色。本书精心选择并设计一系列与实际应用息息相关的例题、习题、实验题、课程设计题等,使原本枯涩难懂的理论变得生动有趣,并以此说明数据结构和算法的必要性,以及它们对实际应用程序设计的指导作用。同时,要求学生能在生活中发现问题并解决问题,提高学习兴趣,力求在潜移默化中使学生理解和体会理论知识的重要性,并掌握如何使用它们的方法。
    除了每章的实验题给出详细的训练目标、设计内容和设计要求之外,针对课程设计实践性环节,本书给出了多种算法设计与分析的综合应用程序设计实例,详细说明需求方案、设计思想、模块划分、功能实现、调试运行等环节的设计方法,贯彻理论讲授与案例教学相结合的教学方法。
    程序设计有其自身的规律,不是一蹴而就的,也没有捷径。程序员必须具备基本素质,必须掌握程序设计语言的基本语法以及算法设计思想和方法,并且需要积累许多经验。这个逐步积累的过程需要一段时间,需要耐心,厚积而薄发。
    本书第1~9章是数据结构课程的主要内容,包括线性表、树、图等数据结构设计以及查找和排序算法设计;第10章为综合应用设计,包括课程设计范例和参考选题;
    本书所有程序均已在Visual C++ 2008开发环境中调试通过。
    全书由叶核亚编著,南京大学计算机科学与技术系陈本林教授主审。感谢陈老师认真细致地审阅了全稿,提出了许多宝贵意见。
    本书第1版于2004年出版,岁月如梭,转眼已十年。感谢电子工业出版社十年来对我的坚定支持;感谢我的同事们提供了许多帮助;感谢众多读者朋友的坚定支持及提出的宝贵意见。对书中存在的不妥与错漏之处,敬请读者朋友批评指正。
    本书为任课教师提供配套的教学资源(包含电子课件、例题源代码和习题解答),需要者可登录到华信教育资源网站(http://www.huaxin.edu.cn或http://www.hxedu.com.cn),注册之后进行下载,或发邮件到unicode@phei.com.cn或yeheya@x263.net咨询。
    展开

    作者简介

    本书暂无作者简介
  • 样 章 试 读
    本书暂无样章试读!
  • 图 书 评 价 我要评论
华信教育资源网