数据结构教程

数据结构教程 pdf epub mobi txt 电子书 下载 2026

出版者:北京航空航天大学出版社
作者:唐发根
出品人:
页数:425
译者:
出版时间:2005-5
价格:36.00元
装帧:
isbn号码:9787810775861
丛书系列:高等学校通用教材
图书标签:
  • 数据结构
  • 计算机
  • 算法
  • 教材
  • 考研
  • 北航
  • 【程序员】
  • ★已购买★
  • 数据结构
  • 算法
  • 计算机科学
  • 编程
  • 教材
  • 基础
  • 数据存储
  • 链表
想要找书就要到 图书目录大全
立刻按 ctrl+D收藏本页
你会得到大惊喜!!

具体描述

《数据结构教程》(第二版)是1996年出版的第一版的修订版。修订版在保持第一版基本框架和特色的基础上,对其中的内容做了大量的增删和修改,书中所有算法采用C语言描述。

  书中讨论了包括线性表、堆栈、队列、树和图在内的各种数据结构和数据文件的基本概念、逻辑结构与存储结构,以及在这些结构的基础上所实施的相关操作。全书仍分为11章。每一章在增加了大量例题解析的同时,还配有丰富的、各种类型的习题,并且提供了体现各章基本内容的上机实践题。

  本书可以作为高等院校计算机专业本科学生的教材,也可以作为报考高等学校计算机专业硕士研究生入学考试的复习用书,同时还可以作为从事计算机系统软件和应用软件设计与开发人员的参考资料。

作者简介

目录信息

第1章 绪论1.1什么是数据结构1.2数据结构的发展简史及其在计算机科学中的地位1.3算法1.3.1算法及其性质1.3.2基本算法1.3.3算法的描述1.4算法分析1.4.1时间复杂度1.4.2空间复杂度1.4.3其他方面习题第2章 线性表2.1线性表的定义及其基本操作2.1.1线性表的定义2.1.2线性表的基本操作2.2线性表的顺序存储结构2.2.1顺序存储结构的构造2.2.2几种常见操作的实现2.2.3顺序存储结构小结2.3线性链表及其操作2.3.1线性链表的构造2.3.2线性链表的基本算法2.4循环链表及其操作2.5双向链表及其操作2.5.1双向链表的构造2.5.2双向链表的插入与删除算法2.6链表的应用举例2.6.1链式存储结构下的一元多项式相加2.6.2打印文本文件的最后n行习题第3章 数组3.1数组的概念3.2数组的存储结构3.3矩阵的压缩存储3.3.1对称矩阵的压缩存储3.3.2对角矩阵的压缩存储3.4稀疏矩阵的三元组表表示3.4.1稀疏矩阵的三元组表存储方法3.4.2稀疏矩阵的转置算法3.4.3稀疏矩阵的相加算法3.4.4稀疏矩阵的相乘算法3.5稀疏矩阵的链表表示3.5.1线性链表存储方法3.5.2带行指针向量的链表存储方法3.5.3十字链表存储方法3.6数组的应用举例3.6.1一元多项式的数组表示3.6.2n阶魔方习题第4章 堆栈和队列4.1堆栈的概念及其操作4.1.1堆栈的定义4.1.2堆栈的基本操作4.2堆栈的顺序存储结构4.2.1顺序堆栈的构造4.2.2顺序堆栈的基本算法4.2.3多个堆栈共享连续空间4.3堆栈的链式存储结构4.3.1链接堆栈的构造4.3.2链接堆栈的基本算法4.4堆栈的应用举例4.4.1符号匹配检查4.4.2数制转换4.4.3堆栈在递归中的应用4.4.4表达式的计算4.4.5又一个趣味游戏——迷宫4.5队列的概念及其操作4.5.1队列的定义4.5.2队列的基本操作4.6队列的顺序存储结构4.6.1顺序队列的构造4.6.2顺序队列的基本算法4.6.3循环队列4.7队列的链式存储结构4.7.1链接队列的构造4.7.2链接队列的基本算法习题第5章 广义表5.1广义表的基本概念5.2广义表的存储结构5.3多元多项式的表示习题第6章 串6.1串的基本概念6.1.1串的定义6.1.2串的几个概念6.2串的基本操作6.3串的存储结构6.3.1串的顺序存储结构6.3.2串的链式存储结构6.4串的几个操作-习题第7章 树与二叉树7.1树的基本概念7.1.1树的定义7.1.2树的逻辑表示方法7.1.3基本术语7.1.4树的性质7.1.5树的基本操作7.2树的存储结构7.2.1多重链表表示法7.2.2三重链表表示法7.3二叉树7.3.1二叉树的定义7.3.2二叉树的基本操作7.3.3两种特殊形态的二叉树7.3.4二叉树的性质7.3.5二叉树与树、树林之间的转换7.4二叉树的存储结构7.4.1二叉树的顺序存储结构7.4.2二叉树的链式存储结构7.5二叉树与树的遍历7.5.1二叉树的遍历7.5.2由遍历序列恢复二叉树7.5.3二叉树的等价性7.5.4树和树林的遍历7.5.5基于二叉树遍历操作的算法举例7.6线索二叉树7.6.1线索二叉树的构造7.6.2线索二叉树的利用7.6.3期工程二叉树的线索化7.6.4线索二叉树的更新7.7二叉排序树7.7.1二叉排序树的定义7.7.2二叉排序树的建立7.7.3在二X排序树中删除结点7.7.4二叉排序树的查找7.8平衡二叉树7.9哈夫曼树及其应用7.9.1哈夫曼树的概念7.9.2哈夫曼编码习题第8章 图8.1图的基本概念8.1.1图的定义和基本术语8.1.2图的基本操作8.2图的存储方法8.2.1邻接矩阵存储方法8.2.2邻接表存储方法8.2.3有向图的十字链表存储方法8.2.4无向图的多重邻接表存储方法8.3图的遍历8.3.1深度优先搜索8.3.2广度优先搜索8.3.3连通分量8.4最小生成树8.4.1普里姆算法8.4.2克鲁斯卡尔算法8.5最短路径8.6.AOV网与拓扑排序8.6.1AOV网8.6.2拓扑排序8.6.3拓扑排序算法8.7AOE网与关键路径8.7.1AOE网8.7.2关键路径8.7.3关键路径的确定习题第9章 文件及查找9.1文件概述9.1.1文件的基本概念9.1.2文件的存储介质9.1.3文件的基本操作9.2顺序文件9.2.1连续顺序文件及其查找9.2.2链接顺序文件及其查找9.3索引文件9.3.1稠密索引文件9.3.2非稠密索引分块文件9.3.3多级索引文件9.4B-树和B+树9.4.1B-树的基本概念9.4.2B-树的基本操作9.4.3B+树的基本概念9.4.4B+树的基本操作9.5散列(hash)文件9.5.1概述9.5.2散列函数的几种常见构造方法9.5.3处理冲突的方法9.5.4散列文件的操作9.5.5散列法的平均查找长度习题第10章 内排序10.1概述10.1.1排序的基本概念10.1.2排序的分类10.2插入排序10.3选择排序10.4泡排序10.5谢尔排序10.6快速排序10.7堆积排序10.7.1堆积的定义10.7.2堆积排序算法10.8二路归并排序10.8.1归并子算法10.8.2一趟归并扫描子算法10.8.3二路归并排序算法10.9基数排序10.10各种内排序方法的比较10.10.1稳定性比较10.10.2复杂性比较习题第11章 外排序11.1概述11.2磁带排序11.2.1多路平衡归并排序法11.2.2多步归并排序11.3初始归并段的合理分布与产生11.3.1初始归并段的合理分布11.3.2一种产生初始归并段的方法——置换选择排序11.4磁盘排序习题附录 上机实践题习题答案参考文献
· · · · · · (收起)

读后感

评分

评分

评分

评分

评分

用户评价

评分

我很少对一本技术书籍给出如此高的评价,但《数据结构教程》的讲解深度和广度确实达到了一个极高的水准。这本书的语言风格成熟稳重,它不试图用花哨的语言来吸引人,而是用逻辑的严密性和论证的充分性来征服读者。它的理论基础非常扎实,尤其是对于算法的证明部分,作者采用了清晰的数学归纳法和反证法,确保读者对算法的正确性无懈可击地理解。与一些侧重于特定语言(如Java或C++)实现的教程不同,这本书更注重于数据结构和算法的“普适性”原理,它使用的伪代码清晰、中立,让我可以非常容易地将其映射到任何我熟悉的编程语言上。我特别赞赏书中对高级数据结构(如斐波那契堆、自平衡二叉查找树的各种变体)的处理,作者没有简单地堆砌公式,而是用精妙的图解来展示那些复杂旋转和合并操作的每一步状态变化,这对于理解这些前沿结构至关重要。总而言之,这是一本既能服务于应试,更能沉淀为扎实内功的著作,它让我对“高效计算”有了更深层次的敬畏与理解。

评分

这本《数据结构教程》简直是为我量身定做的!我之前自学过一些算法相关的书籍,但总感觉在数据结构的基础概念上抓不住重点,很多抽象的理论总是让我云里雾里。直到我翻开这本书,那种豁然开朗的感觉真是太棒了。作者的叙述方式非常细腻,仿佛有一个经验丰富的老教授在身边耐心讲解。比如,在讲解树和图的遍历时,他不仅仅给出了伪代码,还结合了实际生活中的例子,比如社交网络的关系图谱,这样一来,那些复杂的递归过程一下子就变得直观易懂了。书中对每种数据结构的底层实现原理剖析得极其透彻,比如链表在内存中的连续性与分散性对比,以及散列表(哈希表)的冲突解决策略,都写得深入浅出,让人既能理解“是什么”,更能明白“为什么”要这么设计。我尤其欣赏它在讲解复杂度分析时的严谨性,不是简单地抛出大O表示法,而是会详细推导每一步操作的时间消耗,这对后续学习算法优化至关重要。这本书的配图质量也极高,那些动态展示数据结构变化过程的示意图,比起我以前看过的任何教材都要清晰有力,极大地帮助我构建了完整的空间想象。对于准备面试或者希望夯实计算机基础的读者来说,这本书绝对是不可多得的宝典,它不仅教会你如何使用数据结构,更教会你如何像一个计算机科学家一样思考问题。

评分

坦白说,我是一个对细节有着近乎偏执要求的工程师,过去翻阅的几本数据结构教材,总是在某些关键的边界情况处理上含糊其辞,这在实际工作中是致命的缺陷。这本书则展现了极高的专业水准和对实现细节的关注。比如,在讲解双向链表的插入与删除操作时,它详细列举了头节点、尾节点以及中间节点时指针调整的细微差别,甚至连空链表和只有一个元素的链表的情况都一一进行了分析和代码演示,这种面面俱到的严谨性让人非常信服。此外,书中对“时间/空间权衡”的讨论非常深刻。它不仅仅是给出不同算法的复杂度,更重要的是,它会引导读者思考在特定硬件资源或性能需求下,应该优先选择哪种结构。例如,在内存充足但需要极快查找速度的场景,它会毫不犹豫地推荐平衡树,并解释其维持平衡操作的成本。这本书的排版设计也极为考究,关键术语和代码块的着色区分明确,即便是大段的代码对照阅读也不会感到疲劳。对我而言,这更像是一本工具手册,我经常需要回去查阅关于特定排序算法或图论算法的精确描述和优化技巧,它的参考价值极高,远超普通教程的范畴。

评分

我作为一个刚接触编程不久的学生,面对市面上那些动辄几百页、充斥着数学公式和晦涩定义的“经典”教材时,心里常常感到沮丧。庆幸的是,我发现了这本《数据结构教程》,它彻底颠覆了我对技术书籍的刻板印象。这本书的语言风格极其活泼,就像一位热爱分享知识的同行在跟你交流心得,而不是高高在上的理论灌输。它的章节编排逻辑非常清晰,每引入一个新的概念,都会先从一个实际应用场景入手,比如在讨论栈和队列时,它立刻关联到了操作系统中的任务调度和函数调用堆栈,这种“应用驱动”的学习路径让我始终保持着学习的动力。书中的习题设计也很有新意,它们往往不是那种纯粹的计算题,而是需要你动脑筋去设计一个数据结构来解决一个具体问题,这极大地锻炼了我的工程思维。最让我印象深刻的是它对“抽象数据类型(ADT)”的强调,作者反复提醒读者,在实现具体结构之前,要先清晰地定义操作和接口,这是一种非常专业的编程习惯的培养。读完这部分内容,我感觉自己不仅仅是在学习知识点,更是在学习一种结构化解决问题的思维框架。对于初学者来说,这本书无疑是最好的“引路灯”,它将复杂性降到了可接受的程度,同时又不牺牲专业性,阅读体验非常流畅和愉悦。

评分

这本书的独特之处在于它强大的“横向联系”能力。很多数据结构教材都是孤立地介绍每种结构,学完栈就忘了队列,学完树又忘了数组。然而,这本《数据结构教程》做到了知识的融会贯通。作者非常善于在讲解新内容时,回顾和对比之前学过的结构。比如,在讲到堆排序时,它巧妙地将堆的结构特性与二叉树进行了深度关联,解释了为什么堆的“半完全二叉树”结构能保证$O(log n)$的高度。更令人惊喜的是,它在后半部分将数据结构与操作系统、数据库等更上层的应用场景紧密结合起来。讲解B树和B+树时,它直接引入了磁盘I/O的概念,让读者明白这些结构设计是为了优化外部存储访问的。这种跨领域的知识串联,极大地拓宽了我的视野,让我明白数据结构并非孤立的理论,而是支撑整个计算机系统的基石。阅读过程中,我感觉自己像是在构建一个知识网络,而不是简单地填充知识点。这本书为我搭建了一个坚实而广阔的知识框架,让我在后续学习高级课程时,能够迅速定位和理解核心概念的本质。

评分

比较通俗易懂

评分

作为教材来说还是讲得比较清晰的。

评分

比较通俗易懂

评分

作为教材来说还是讲得比较清晰的。

评分

读过最烂的一本书,读的我万念俱灰。也就应付考试,其他没作用。

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2026 book.wenda123.org All Rights Reserved. 图书目录大全 版权所有