热门关键字:  听力密码  单词密码  新概念美语  巧用听写练听力  零起点

数据结构

中国水利水电出版社
    【作 者】主编 韩利凯 朱浩悦 【I S B N 】978-7-5170-4541-0 【责任编辑】李炎 【适用读者群】本专通用 【出版时间】2016-08-01 【开 本】16开 【装帧信息】平装(光膜) 【版 次】第1版第1次印刷 【页 数】228 【千字数】349 【印 张】14.25 【定 价】30 【丛 书】普通高等教育“十三五”规划教材(计算机专业群) 【备注信息】
图书详情

    本书系统地介绍了各种常用的数据结构与算法,共分为10章。第1章为绪论,引入数据结构与算法的一些基本概念;第2~7章分别介绍线性表、栈与队列、串、数组与广义表、树与二叉树和图等几种基本的数据结构;第8~9章分别介绍各种查找和内、外排序的基本运算,它们都是数据处理中广泛使用的技术;第10章列举了数据结构课程设计实例,通过综合训练,培养学生分析问题、解决问题、编程和动手操作等多方面的能力,并运用所学的数据结构知识去解决实际问题。

    本书内容丰富,逻辑性强,选材精练,图文并茂,对基本理论的叙述深入浅出、通俗易懂;既注重理论知识,又强调工程实用;精选的应用实例涉及领域相当广泛,给读者提供了思路与方法,有助于提高读者分析问题和解决问题的能力。全书采用类C语言作为数据结构和算法的描述语言,每章后进行小结并配有适量习题,便于读者掌握各章的重点和难点并进行必要的训练,既便于教学,又便于自学。

    •讲解精炼,突出实用。本书精选基础理论内容,降低了概念的抽象性和理论的难度,突出实用性,增加了数据结构研究内容的应用实例,抽象数据类型定义实例,并以具体实例说明算法的优化等。

    •结构合理,重点突出。本书讲述了数据结构的重要内容,体系结构合理,重点难点突出,为方便读者理解某些易产生疑问的知识点,还给出了额外的分析;每章节的例子和习题较为丰富;最后一章列举了数据结构课程设计实例,通过综合训练,培养学生分析问题、解决问题、编程和动手操作等多方面的能力。

    •创新思维,培养能力。本书注重启发创新思维,培养能力;概念准确,逻辑性强;书中内容都经过编者深入研究,且在教学实践中反复验证,因而较易理解,旨在提高学生的实际分析问题的能力和解决问题的能力,增强算法分析的能力。

    “数据结构”是计算机科学中一门综合性的专业基础课。主要介绍如何合理地组织数据,有效地存储和处理数据,正确地设计算法以及对算法的分析和评价。通过对本课程的学习,使学生深入透彻地理解数据结构的逻辑结构和物理结构的基本概念以及有关算法,培养基本的、良好的程序设计技能,编制高效可靠的程序,为学习操作系统、编译原理和数据库等课程奠定基础。

    目前,“数据结构”不仅是计算机专业的一门重要的专业基础课程,而且大多数高等院校的非计算机专业也将“数据结构”作为主干课程。“数据结构”不仅是计算机专业考研的必考科目之一,还是全国计算机等级考试、软件资格(水平)考试的主要考试内容。

    本书内容丰富,逻辑性强,选材精练,图文并茂,对基本理论的叙述深入浅出、通俗易懂,既注重理论知识,又强调工程实用,所精选的应用实例涉及领域相当广泛,给读者提供了思路与方法,有助于提高读者分析问题和解决问题的能力。全书采用类C语言作为数据结构和算法的描述语言,每章后进行小结并配有适量习题,便于读者掌握各章的重点和难点并进行必要的训练,既便于教学,又便于自学。

    本书主要内容如下:

    第1章:如果读者刚接触数据结构,这一章将告诉您数据结构是什么,以及本书的学习目标、学习方法和学习内容;另外,还介绍了本书对算法的描述方法。

    第2章:主要介绍了线性表。首先讲解线性表的逻辑结构,然后介绍线性表的各种常用存储结构,在每一节均给出了算法的具体应用。通过这一章的学习,读者可以掌握顺序表、动态链表和静态链表的操作。

    第3章:主要介绍操作受限的线性表—栈和队列,内容包括栈的定义,栈的基本操作及栈与递归的转化,队列的概念,顺序队列和链式队列的运算。

    第4章:主要介绍一种特殊的线性表—串,内容包括串的概念,串的各种存储表示,以及串的模式匹配算法。

    第5章:主要介绍数组与广义表,内容包括数组的概念,数组(矩阵)的存储结构及运算,几种特殊矩阵;广义表的概念,广义表的两种存储方式,广义表的操作实现。

    第6章:主要介绍非线性数据结构—树和二叉树,内容包括树和二叉树的概念,树和二叉树的存储表示,二叉树的性质,二叉树的遍历和线索化,树、森林与二叉树的转换及哈夫曼树。

    第7章:主要介绍非线性数据结构—图,内容包括图的概念和存储结构、图的遍历、最小生成树、拓扑排序、关键路径及最短路径。

    第8章:主要介绍数据结构的常用技术—查找。首先介绍查找的概念,然后结合具体实例介绍各种查找算法,并给出了完整程序。

    第9章:主要介绍数据结构的常用技术—排序。首先介绍排序的相关概念,然后介绍各种内外排序技术,并给出了具体实现算法。

    第10章:通过对本章的学习,可以复习数据结构的基本算法,学习数据结构实验系统开发的全过程,了解系统设计的一般要求;掌握文件包含处理的基本方法;提高程序编写和程序调试的能力。

    本书由西安文理学院韩利凯、朱浩悦担任主编,高寅生、杨彩霖担任副主编。其中第1章由李向军编写;第2章、第3章、第7章由韩旭编写;第4章、第8章由朱浩悦编写;第5章、第6章由王昭阳编写;第9章由刘光军、韩利凯编写;第10章由韩利凯编写。

    在教材编写过程中,编者参考了国内外众多数据结构与算法方面的优秀教材,其中大多列举在书后的参考文献中。在此,我们对这些教材的编著者表示衷心感谢。

    中国水利水电出版社的领导和编审老师给予本书编写以很大的支持与细心指导,在此也表示衷心的感谢!

    由于编者水平有限,时间仓促,书中难免存在一些不足之处,殷切希望广大读者批评指正。

    前言

    第1章 绪论 1
    1.1 数据结构的研究内容 1
    1.2 基本概念和术语 4
    1.2.1 数据、数据元素、数据项和
    数据对象 4
    1.2.2 数据结构 4
    1.2.3 数据类型和抽象数据类型 8
    1.3 算法与数据结构 12
    1.3.1 数据结构上的基本运算 13
    1.3.2 算法的定义及特性 14
    1.3.3 算法分析 14
    1.4 本章小结 25
    习题1 26
    第2章 线性表 29
    2.1 线性表的概念及其抽象数据类型定义 29
    2.1.1 线性表的逻辑结构 29
    2.1.2 线性表的抽象数据类型定义 30
    2.2 线性表的顺序存储 31
    2.2.1 线性表的顺序存储结构 31
    2.2.2 线性表顺序存储结构上的基本运算 33
    2.3 线性表的链式存储 36
    2.3.1 单链表 36
    2.3.2 单链表上的基本运算 37
    2.3.3 循环链表 43
    2.3.4 双向链表 44
    2.3.5 静态链表 46
    2.4 线性表应用—一元多项式的表示
    及相加 47
    2.5 顺序表与链表的综合比较 50
    2.5.1 顺序表和链表的比较 50
    2.5.2 线性表链式存储方式的比较 51
    2.6 本章小结 51
    习题2 52
    第3章 限定性线性表—栈与队列 55
    3.1 栈 55
    3.1.1 栈的定义 55
    3.1.2 栈的表示和实现 57
    3.1.3 栈的应用举例 61
    3.2 队列 63
    3.2.1 队列的定义 63
    3.2.2 队列的表示和实现 65
    3.2.3 队列的应用举例 70
    3.3 本章小结 73
    习题3 74
    第4章 串 76
    4.1 串的基本概念 76
    4.1.1 串的定义 76
    4.1.2 串的基本操作 77
    4.2 串的存储实现 79
    4.2.1 定长顺序串表示 79
    4.2.2 堆分配存储表示 82
    4.2.3 串的链接存储表示 84
    4.2.4 子串定位运算的实现 86
    4.3 串的应用举例 88
    4.4 本章小结 89
    习题4 90
    第5章 数组和广义表 92
    5.1 数组的定义与基本操作 92
    5.1.1 数组的定义 92
    5.1.2 数组的基本操作 93
    5.2 数组的顺序存储和实现 93
    5.2.1 数组的顺序存储结构 93
    5.2.2 数组的顺序存储的实现 95
    5.3 特殊矩阵的压缩存储 96
    5.3.1 规律分布的特殊矩阵 96
    5.3.2 稀疏矩阵 98
    5.4 广义表 100
    5.4.1 广义表的概念 101
    5.4.2 广义表的存储结构 102
    5.4.3 广义表的操作实现 104
    5.5 本章小结 106
    习题5 106
    第6章 树与二叉树 109
    6.1 树的定义与基本术语 109
    6.2 二叉树 111
    6.2.1 二叉树的定义与基本操作 112
    6.2.2 二叉树的性质 112
    6.2.3 二叉树的存储结构 114
    6.3 二叉树的遍历与线索化 116
    6.3.1 二叉树的遍历 116
    6.3.2 遍历算法应用 119
    6.3.3 线索二叉树 122
    6.3.4 由遍历序列确定二叉树 126
    6.4 树、森林和二叉树的关系 127
    6.4.1 树的存储结构 127
    6.4.2 树、森林与二叉树的相互转换 129
    6.4.3 树与森林的遍历 132
    6.5 哈夫曼树及其应用 134
    6.5.1 哈夫曼树 134
    6.5.2 哈夫曼编码 136
    6.6 本章小结 138
    习题6 138
    第7章 图 141
    7.1 图的定义与基本术语 141
    7.1.1 图的定义 141
    7.1.2 图的基本术语 141
    7.2 图的存储结构 143
    7.2.1 邻接矩阵表示法 143
    7.2.2 邻接表表示法 145
    7.2.3 十字链表 146
    7.2.4 邻接多重表 148
    7.3 图的遍历 149
    7.3.1 深度优先搜索 149
    7.3.2 广度优先搜索 150
    7.4 图的应用 152
    7.4.1 图的连通性问题 152
    7.4.2 有向无环图的应用 156
    7.4.3 最短路径问题 160
    7.5 本章小结 162
    习题7 162
    第8章 查找 164
    8.1 查找的基本概念 164
    8.2 顺序查找法 165
    8.3 折半查找法 166
    8.4 散列表及其查找 169
    8.4.1 常用的散列函数 170
    8.4.2 处理冲突的方法 171
    8.4.3 散列表的查找分析 175
    8.5 本章小结 177
    习题8 177
    第9章 内部排序 179
    9.1 排序的概念 179
    9.1.1 排序的稳定性 179
    9.1.2 排序用到的结构与操作 179
    9.2 插入排序 180
    9.2.1 直接插入排序 180
    9.2.2 直接插入排序复杂度分析 181
    9.2.3 其他插入排序 181
    9.3 交换排序 184
    9.3.1 最简单的交换排序 184
    9.3.2 冒泡排序 184
    9.3.3 冒泡排序的优化 185
    9.3.4 快速排序 186
    9.4 选择排序 189
    9.4.1 简单选择排序 189
    9.4.2 树形选择排序 190
    9.4.3 堆排序 191
    9.5 归并排序 196
    9.6 基数排序 196
    9.6.1 多关键字排序 196
    9.6.2 链式基数排序 197
    9.7 内部排序算法的分析和比较 198
    9.8 本章小结 199
    习题9 200
    第10章 数据结构课程实训 202
    10.1 系统设计的要求 202
    10.1.1 系统总体结构设计 202
    10.1.2 系统详细设计 204
    10.1.3 系统调试和维护 205
    10.2 文件的包含处理 206
    10.2.1 什么是文件包含 206
    10.2.2 如何对“数据结构实验系统”
    进行文件包含 208
    10.2.3 “数据结构实验系统”主控模块 209
    10.3 数据结构课程设计 210
    10.3.1 课程设计的目的 210
    10.3.2 课程设计的内容 210
    10.3.3 课程设计报告 211
    10.3.4 课程设计的考核 212
    10.4 课程设计的要求 212
    10.5 课程设计题目 213
    参考文献 220





最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册