第一图书网

数据结构与算法设计

周海英,马巧梅,靳雁霞 国防工业出版社
出版时间:

2009-6  

出版社:

国防工业出版社  

作者:

周海英,马巧梅,靳雁霞  

页数:

322  

前言

数据结构课程作为国内计算机及信息管理等相关专业的重要专业基础课已有二十多年的教学实践了。该门课程对于其他计算机专业课程的学习会打下重要的知识基础,已成为计算机类本专科学生的核心课程。从国内外的教学情况可以看出,数据结构课程的基本内容体系已渐趋成熟,其中的一些内容吸收了离散数学中的部分理论,对计算机专业课程的学习和软件开发提供了重要的理论和方法基础。本书的编写是根据国内该课程的教学情况,结合研究生入学考试中数据结构的重要知识点,参考了大量的相关书籍后编写完成,可以作为本科、专科数据结构课程的教材和参考书,也可作为参加研究生考试的学生的辅导教材。本书在编写中以理论和实践相结合,根据作者多年的教学实践总结出的经验在讲解数据结构算法和一般理论的基础上,给出了大量的典型例题和习题,便于学生在掌握理论方法的同时就能熟练把握课程重要的知识点和方法,并通过对例题的消化理解以及习题练习迅速掌握重要的解题方法和算法设计技巧,为提高学习的效率和效果提供良好的帮助。本书在第1章到第4章中主要介绍了数据结构的基本概念,线性表以及栈和队列等线性结构的基本知识,这些内容是数据结构的重要基础,在内容上涉及大量的概念和算法,本书在编写时给出了大量的例题,其中一些就是定义和基本概念方面的问答题,通过这些内容使读者了解数据结构研究的基本内容和重要方法,为后面章节的学习打好基础。第5章介绍了递归,本章内容主要与算法分析与设计课程有联系,在讲授时可以根据教学要求进行选择。第6章介绍了数组、特殊矩阵和广义表方面的内容,这章的内容与前面章节的内容有关联,但内容的逻辑性上又有一定的独立性。第7章到第8章主要介绍树和图两种常用的非线性结构,它们是数据结构中的重点内容之一,对解决实际问题提供了重要的方法论基础,本书安排了大量篇幅给予讲解。第9章和第10章的排序和查找是实际应用中最常见的问题,对于算法设计和编程有重要的帮助,也是数据结构中的另一个重点内容之一。第11章介绍文件,这章的内容可以根据课时情况作为选讲内容。

内容概要

本书主要介绍了数据结构的基本概念和基本算法。全书共分11章。前6章主要介绍了线性表、栈和队列、串、递归、数组特殊矩阵和广义表,后5章主要介绍了树、图、奎找、排序和文件。 本书内容详实,基本原理与算法实现相互结合并配套了大量典型例题,便于初学者掌握重要的概念、原理和算法设计方法,也方便了读者复习该课程的重要知识点。 本书可作为高等院校计算机及相关专业本科生数据结构课程的教材,也可作为计算机工程技术人员学习的参考书。

书籍目录

第1章 绪论 1.1 什么是数据结构 1.2 基本概念和术语 1.3 数据结构的发展及其重要地位 1.4 算法的描述和算法分析 1.4.1 算法的描述 1.4.2 算法设计的要求 1.4.3 算法效率的度量 1.4.4 算法的存储空间需求 1.5 典型例题 习题1第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.3.3 循环链表 2.3.4 双向链表 2.3.5 静态链表 2.3.6 单链表应用举例 2.4 顺序表和链表的比较 2.5 典型例题 习题2第3章 栈和队列 3.1 栈 3.1.1 栈的定义及基本运算 3.1.2 栈的存储实现和运算实现 3.2 栈的应用举例 3.3 队列 3.3.1 队列的定义及基本运算 3.3.2 队列的存储实现及运算实现 3.4 队列应用举例 3.5 典型例题 习题3第4章 串 4.1 串的概念和基本运算 4.1.1 串的基本概念 4.1.2 串的基本运算 4.2 串的存储结构 4.2.1 串的静态存储结构 4.2.2 串的动态存储结构 4.3 字符串的模式匹配 4.3.1 Brute-Force算法 4.3.2 KMP算法 4.4 串应用——文本编辑软件 4.5 典型例题 习题4第5章 递归 5.1 递归的概念 5.2 用C语言实现递归 ……第6章 数组、特殊矩阵和广义表第7章 树形结构第8章 图第9章 查找第10章 排序第11章 文件参考文献

章节摘录

插图:第1章绪论自从第一台电子计算机问世以来,计算机科学得到了飞速的发展,与此同时,计算机的应用领域也从最初的科学计算逐步发展到更高级的阶段,如图像处理、语音识别、机器翻译、人工智能等多个领域。现在计算机处理的对象不仅是简单的数值或字符,而且带有不同结构的各种数据。因此,要设计一个好的软件,除了要掌握一定的计算机程序设计语言之外,还必须研究各类数据的特性以及数据之间存在的关系。这是因为计算机要加工处理数据,必须能够将数据输入到计算机中,并能够以恰当的方式在计算机中表示并存储起来,还要便于根据需要对数据进行加工和处理,因而当各种数据输入计算机之前,必须先按某种数据的组织.形式将数据组织好,然后考虑以什么样的方式进行存储,这种组织形式和存储方式直接关系到程序对数据的处理能力和处理效率,并影响到问题的解决。综上所述,可以这样理解,计算机在解决一个问题时,先将问题中的有关对象抽取出来形成数据,并将这些数据组织在一起。为了要合理组织这些数据,就要先找到各个数据之间的逻辑关系,即数据的逻辑结构,从而选择一种合理的组织方式。其次,还要考虑计算机如何存储这些组织好的数据,即数据的物理结构或存储结构。因此,数据结构这门课程就是要解决两个主要的问题:数据的逻辑结构和数据的存储结构。1.1什么是数据结构一般来说,当用计算机解决一个具体问题时,大致都需要经过下面几个步骤:首先要从具体问题中抽象出一个适当的数学模型(或数学公式),然后设计一个描述此数学模型的算法,最后利用合适的程序设计语言来编写程序,进行测试、调整,直至最终得到满意的解答。抽象数学模型的过程实质上是分析问题,从中提取操作的对象并找出这些操作对象之间含有的关系,然后用数学的语言加以描述的过程。事实上,有些问题的求解过程可以通过一定的方程进行一定的运算来获取。例如,求解梁架结构中应力的数学模型为线性方程组;预报人口增长情况的数学模型为微分方程。然而,更多的非数值计算问题却无法用数学方程加以描述。


编辑推荐

《数据结构与算法设计(第2版)》特色:选配了大量的典型例题和经典习题;精选的部分习题为近年来考研“高频题”;突出算法设计与概念方法相互配合讲解的技巧。《数据结构与算法设计(第2版)》配套的编程练习库CodeLab,在线即时反馈。本编程练习库与北美136所大学同步。有兴趣的读者可以与jtwang@ndip.cn联系。

图书封面

广告

下载页面


数据结构与算法设计 PDF格式下载



不是伪代码,讲得也比较通俗易懂,不错


相关图书