您好,欢迎光临有路网!
数据结构与算法:C语言版(第2版,计算机应用技术规划教材)
QQ咨询:
有路璐璐:

数据结构与算法:C语言版(第2版,计算机应用技术规划教材)

  • 作者:徐凤生
  • 出版社:机械工业出版社
  • ISBN:9787111479406
  • 出版日期:2014年10月01日
  • 页数:277
  • 定价:¥35.00
  • 分享领佣金
    手机购买
    城市
    店铺名称
    店主联系方式
    店铺售价
    库存
    店铺得分/总交易量
    发布时间
    操作

    新书比价

    网站名称
    书名
    售价
    优惠
    操作

    图书详情

    内容提要
    本书涵盖数据结构的基本概念,定义了线性表、栈、队列、串、数组、广义表、树和二叉树、图、查找、排序等各种结构的抽象数据类型,给出了相应操作的实现算法,并在*后一章给出了几个课程设计的实例。另一方面,本书采用C语言描述算法,并给出了各种算法的效率分析,以及这些结构在计算机科学及其他领域的应用。此外,每章后均配有典型例题、上机实验和习题。本书中的所有算法都在VC++环境下调试通过。
    本书在内容安排上突出由浅入深、循序渐进、通俗易懂的特点,算法分析透彻、讲解清晰、便于学生自学。为了激发学生的学习兴趣,培养学生解决实际问题的能力,书中融入了一些典型的应用实例,如命题公式真值表的求解算法、出栈序列的求解算法等。
    本书可作为高等院校计算机及相关专业本科生的“数据结构”课程教材,也可供相关科技人员学习参考。
    文章节选
    第1章 绪论
    随着计算机产业的飞速发展,计算机的应用领域越来越广泛,已不再局限于科学计算,而是更多地用于控制、管理及数据处理等非数值计算的处理工作。所有的系统软件和应用软件都要用到各种类型的数据结构,在计算机中如何组织数据、处理数据就成了人们进行程序设计的关键所在。因此,我们必须研究数据的特性和数据间的相互关系及其对应的存储表示,并设计出相应的算法,更好地实现程序。数据结构是计算机专业的核心课程,该课程的学习可以帮助人们更好地进行程序设计,解决实际问题。
    11数据结构的研究对象
    自然界中的许多问题是可以用数学工具进行描述的。例如,造桥中的受力问题可描述为线性方程,人口增长的情况可描述为微分方程。但更多的非数值计算问题无法用数学方程加以描述。因此,解决这类问题的关键不再是数学分析��计算方法,而是要设计出合适的数据结构,才能有效地解决问题。请看以下列举的具体问题。
    例1学生信息检索系统。当我们需要查找某个学生的有关信息或某个专业的情况时,只要建立了相应的数据结构,按照某种算法编写了程序,就可以实现计算机自动检索。由此,可以在学生信息检索系统中建立一个按学号顺序排列的学生信息表和按专业排列的索引表,如表11所示。由这个表构成的文件便是学生信息检索的数学模型,计算机的操作就是按照某种要求对学生信息文件进行查询。
    表11学生信息查询系统中的数据结构
    a)学生信息表
    学号姓名性别专业年级
    200701002001韦志君男信息管理与信息系统2007级
    200701001088唐立男计算机科学与技术2007级
    200701002002宋奇锋男信息管理与信息系统2007级
    200701001089熊伟男计算机科学与技术2007级
    200701001091许文锋男计算机科学与技术2007级
    200701002003张小龙男信息管理与信息系统2007级
    200701002004陈亚雯女信息管理与信息系统2007级
    200701001084彭金萍女计算机科学与技术2007级
    b)专业索引表
    信息管理与信息系统1,3,6,7
    计算机科学与技术2,4,5,8
    诸如此类的还有电话自动查号系统、考试查分系统、仓库库存管理系统等。在这类文档管理的数学模型中,计算机处理的对象之间存在一种简单的线性关系,因此这类数学模型可称为线性数据结构。
    例2八枚硬币问题。假设有八枚硬币,分别表示为a,b,c,d,e,f,g,h,其中有且仅有一枚硬币是假币,并且假币的重量与真币的重量不同,可能比真币轻,也可能比真币重。现要求以天平为工具,用*少的比较次数挑选出假币,并同时确定这枚假币的重量比其他真币轻还是重。解决这个问题的*自然的想法就是把硬币分成两组,依次进行判断。其判断的全过程如图11所示。这里用到的是树形数据结构。
    图11八枚硬币问题的数据结构
    例3教学计划编排问题。一个教学计划包含许多课程,在这些课程之间,有些课程要按规定的先后次序进行,有些则没有次序要求。也就是说,有些课程之间有先修和后继的关系,有些课程可以任意安排次序。假设计算机专业的课程设置如表12所示,则这些课程之间的次序关系可以用一个称为有向图的数据结构来表示,如图12所示。有向图的每个结点表示一门课程,若从结点Ci到Cj之间存在有向边,则表示课程Ci必须先于课程Cj开设;若两门课程之间没有有向边,则表示这两门课程之间没有开设的先后次序。
    表12计算机专业的课程设置
    课 程 编 号课 程 名 称先 修 课 程
    C1计算机导论无
    C2高等数学无
    C3C语言程序设计C1
    C4离散数学C2,C3
    C5数据结构C1,C3,C4
    C6汇编语言C1,C3
    C7接口技术C6
    C8操作系统C5
    C9数据库原理C5,C8
    C10编译原理C3
    图12教学计划编排问题的数据结构
    由以上例子可知,描述这类非数值计算问题的数学模型不再是数学方程,而是诸如表、树、图之类的数据结构。使用计算机解决这些实际问题,大致需要经过下列三个步骤:
    1)从具体问题中抽象出一个适当的数学模型。
    2)设计一个解此数学模型的算法。
    3)编出程序、进行测试、调整直至得到*终答案。
    数据结构这门课程就是要解决这三个步骤中的**步和第二步中所提到的问题。建立数学模型的实质是分析问题,从中提取操作的对象,并找出这些操作对象之间含有的关系,然后用数学的语言加以描述。设计解数学模型的算法就是给出处理问题的策略。
    概括地说,数据结构是一门讨论“描述现实世界实体的数学模型(非数值计算)及其上的操作在计算机中如何表示和实现”的学科。实质上,好的程序设计就是好的算法加上好的数据结构。
    数据结构在计算机科学中是一门综合性的专业基础课。数据结构的研究不仅涉及计算机硬件(特别是编码理论、存储装置和存取方法等)的研究范围,而且和计算机软件的研究有着密切的关系,无论是编译程序还是操作系统,都涉及数据元素在存储器中的分配问题。在研究信息检索时也必须考虑如何组织数据,以便更为方便地查找和存取数据元素。因此,数据结构是介于数学、计算机硬件和计算机软件三者之间的一门核心课程。在计算机科学中,数据结构不仅是一般程序设计(特别是非数值计算的程序设计)的基础,而且是设计和实现编译程序、操作系统、数据库系统及其他系统程序和大型应用程序的重要基础。
    数据结构课程集中讨论软件开发过程中的设计阶段,同时涉及编码和分析阶段的若干基本问题。此外,为了构造好的数据结构及其实现,还需考虑数据结构及其实现的评价与选择。因此,数据结构的内容包括3个层次的5个要素,如表13所示。
    表13数据结构课程的内容体系
    目录
    前言
    教学建议
    第1章绪论
    11数据结构的研究对象
    12数据结构的发展概况
    13基本概念与术语
    14数据类型与抽象数据类型
    141数据类型
    142抽象数据类型
    143抽象数据类型的表示与实现
    15算法与算法分析
    151算法
    152算法设计的原则
    153算法效率的衡量方法和准则
    154算法的存储空间需求
    16典型例题
    17上机实验
    18小结
    习题
    第2章线性表
    21线性表的定义
    211线性表的概念
    212线性表的抽象数据类型定义
    22线性表的顺序表示与实现
    221线性表的顺序表示
    222线性表的顺序实现
    223顺序表的应用举例
    23线性表的链式表示与实现
    231单链表
    232双向链表
    233循环链表
    234静态链表
    235链表的应用举例
    24典型例题
    25上机实验
    26小结
    习题
    第3章栈与队列
    31栈
    311栈的抽象数据类型定义
    312栈的表示与实现
    32栈的应用举例
    321数制转换
    322括号匹配的检验
    323表达式求值
    324求命题公式的真值
    33栈与递归实现
    331递归的定义
    332递归与栈的关系
    333递归的实现
    334用递归求所有出栈序列
    335递归的消除
    34队列
    341队列的抽象数据类型定义
    342队列的链式表示与实现
    343队列的顺序表示与实现——循环队列
    344队列的应用举例
    35典型例题
    36上机实验
    37小结
    习题
    第4章串
    41串的定义
    42串的表示与实现
    421串的顺序存储表示
    422串的链式存储表示
    43串的模式匹配
    431简单匹配算法
    432首尾匹配算法
    433KMP算法
    44典型例题
    45上机实验
    46小结
    习题
    第5章数组与广义表
    51数组的定义
    52数组的顺序存储
    53矩阵的压缩存储
    531特殊矩阵
    532稀疏矩阵
    54广义表
    541广义表的定义
    542广义表的存储结构
    55典型例题
    56上机实验
    57小结
    习题
    第6章树与二叉树
    61树的定义
    611树的概念与术语
    612树的逻辑表示方法
    613树的抽象数据类型定义
    62二叉树的定义
    621二叉树的概念
    622二叉树的重要性质
    63二叉树的存储结构
    631二叉树的顺序存储表示
    632二叉树的链式存储表示
    64二叉树的遍历
    641二叉树遍历的概念
    642二叉树遍历的递归算法
    643二叉树遍历的非递归算法
    644层次遍历算法
    645遍历算法的应用举例
    65二叉树的构造
    66线索二叉树
    661线索二叉树的定义
    662线索链表的建立
    663线索链表的遍历算法
    67树和森林的表示方法
    671双亲表示法
    672孩子链表表示法
    673孩子-兄弟链表表示法
    674树、森林和二叉树的对应关系
    68树和森林的遍历
    681树的遍历
    682森林的遍历
    683树遍历算法的应用
    69赫夫曼树与赫夫曼编码
    691赫夫曼树的定义
    692赫夫曼树的构造
    693赫夫曼编码
    610典型例题
    611上机实验
    612小结
    习题
    第7章图
    71图的定义与术语
    711图的相关术语
    712图的抽象数据类型定义
    72图的存储表示
    721图的邻接矩阵存储表示
    722图的邻接表存储表示
    723有向图的十字链表存储表示
    724无向图的邻接多重表存储表示
    73图的遍历
    731深度优先搜索遍历图
    732广度优先搜索遍历图
    733图遍历的应用举例
    74*小生成树
    741普里姆算法
    742克鲁斯卡尔算法
    75两点之间的*短路径问题
    751从某个源点到其余各点的*短路径
    752每一对顶点之间的*短路径
    76拓扑排序
    77关键路径
    78典型例题
    79上机实验
    710小结
    习题
    第8章查找
    81基本概念
    82静态查找表
    821顺序查找
    822有序表查找
    823索引查找
    83动态查找树表
    831二叉排序树
    832平衡二叉树
    833B-树
    834B+树
    835键树
    84哈希表
    841哈希表的概念
    842哈希函数的构造方法
    843处理冲突的方法
    844哈希表的查找
    845哈希表的插入操作
    846哈希表的删除操作
    85典型例题
    86上机实验
    87小结
    习题
    第9章排序
    91概述
    911什么是排序
    912内部排序和外部排序
    913内部排序的方法
    92插入排序
    921直接插入排序
    922折半插入排序
    923二路插入排序
    924表插入排序
    925希尔排序
    93交换排序
    931起泡排序
    932快速排序
    94选择排序
    941简单选择排序
    942堆排序
    95归并排序
    96基数排序
    961多关键字排序
    962链式基数排序
    97各种排序方法的综合比较
    98外排序简介
    981外存信息的存取
    982外排序的基本方法
    99典型例题
    910上机实验
    911小结
    习题
    第10章文件
    101文件的基本概念
    1011什么是文件
    1012文件的逻辑结构及操作
    1013文件的存储结构
    102顺序文件
    103索引文件
    1031ISAM文件
    1032VSAM文件
    104哈希文件
    105多关键字文件
    1051多重表文件
    1052倒排文件
    1053倒排文件的应用
    106典型例题
    107上机实验
    108小结
    习题
    第11章课程设计举例
    111通讯录管理
    112停车场管理
    113文本文件的检索
    114导师制问题
    115家谱管理
    116教学计划安排
    参考文献
    编辑推荐语
    本书具有以下特色:
    **突出算法设计思路,注重培养学生的编程思想和解决实际问题的能力。
    为激发学生学习该课程的兴趣,增强学生的创新意识,书中融入了一些利用所学知识解决实际问题的例子,如真值表的求解算法、出栈序列的求解算法等。
    通过典型算法设计的分析,使学生对所学知识的掌握更加系统化和条理化,更易于对所学知识融会贯通和举一反三。
    通过课程设计的综合训练,进一步提高学生解决实际问题的能力。
    本书为教师提供教学课件、习题答案以及所有算法的调试程序,有需要者可登录华章网站(www.hzbook.com)下载。

    与描述相符

    100

    北京 天津 河北 山西 内蒙古 辽宁 吉林 黑龙江 上海 江苏 浙江 安徽 福建 江西 山东 河南 湖北 湖南 广东 广西 海南 重庆 四川 贵州 云南 西藏 陕西 甘肃 青海 宁夏 新疆 台湾 香港 澳门 海外