数据结构

出版时间:2011-1  出版社:清华大学出版社  作者:杨剑 编  页数:265  

前言

  数据结构是计算机程序设计的重要理论技术基础,它不仅是计算机学科的核心课程,而且已成为其他理工专业的热门选修课。通过数据结构的学习,读者可以运用相关知识和技能更好地进行算法和程序的设计,也为后继课程的学习打下良好的基础。本书是为“数据结构”课程编写的教材,其内容选取符合教学大纲要求,并兼顾学科的广度和深度,适用面广。  数据结构课程主要培养以下几个方面的知识和能力:(1)掌握并能根据实际问题灵活应用基本数据结构的抽象数据类型、存储方法和主要算法。(2)掌握基本的算法设计和分析技术。(3)掌握并能应用常用的排序、查找方法。(4)具备一定的调试算法和程序、项目测试的能力。显然,合理地组织数据,有效地表示数据和正确地处理数据,这三者是提高程序设计质量的关键因素。  本书注意基本概念的引入和阐述,通过实例引入基本概念,然后对主要数据结构及其相关算法分析进行深入比较。本书是作者多年教学经验的总结,在编写本书时注意继承已有教材的优点,同时又结合实际教学和社会需求进行了大范围的内容更新。数据结构是一门理论和实践结合比较紧密的课程,本书每一章都设计有比较新颖的综合上机实习题(即实训),因此可以说,这是一本具有崭新内容的教学用书,它可以作为高等学校计算机类专业学生的教材和参考书,也可作为其他理工类专业的数据结构课程的教学用书,还可以作为计算机相关人员的自学参考书。

内容概要

  《数据结构》是为“数据结构”课程编写的教材,其内容选取符合教学大纲要求,并兼顾学科的广度和深度,适用面广。《数据结构》共分为9章,全面系统地介绍线性表、队列、堆栈、树、图等基本数据结构,以及这些数据结构在计算机中的存储及算法实现,介绍各种查找及排序算法的实现和效率分析,最后给出了数据结构综合应用实例。书中各种算法采用C语言描述。书中每一章除介绍相关知识点外,还给出了每章教学的建议课时、总体要求、学习重点、习题和上机实训题目,在最后一章的实习实训指导中,给出了实训题目、设计思想和设计过程,这非常有助于教师的教学安排以及学生对重点的掌握,提高其应用能力。  《数据结构》配有相关素材,包括各章的程序源代码、PPT电子教案、习题答案与解析,可从清华大学出版社网站下载。  《数据结构》可以作为高等学校计算机类专业学生的教材和参考书,也可作为其他理工类专业的数据结构课程的教学用书,还可以作为计算机相关人员的自学参考书。

书籍目录

第1章 绪论1.1 数据结构的作用和意义1.1.1 数据结构的作用1.1.2 数据结构的意义1.2 数据结构的基本概念1.2.1 基本概念和术语1.2.2 数据结构的逻辑结构与物理结构1.3 数据结构的表示1.4 算法和算法分析1.4.1 算法的基本概念1.4.2 算法效率的度量1.4.3 算法效率分析1.5 习题第2章 线性表2.1 线性表的逻辑结构2.1.1 线性表的概念2.1.2 线性表的基本操作2.1.3 线性表的抽象数据类型描述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.4 小结2.4.1 线性表小结2.4.2 顺序表和链表的比较2.5 习题2.6 实训第3章 栈和队列3.1 栈3.1.1 栈的定义及基本运算3.1.2 顺序栈3.1.3 链栈3.2 队列3.2.1 队列的定义及基本运算3.2.2 顺序队列3.2.3 链队列3.3 栈和队列的应用举例3.3.1 栈应用之一:数制转换3.3.2 栈应用之二:括号匹配3.3.3 栈应用之三:表达式求值3.3.4 队列应用之一:模拟服务台前的排队现象问题3.3.5 队列应用之二:模拟打印机缓冲区3.4 习题3.5 实训第4章 串、数组和广义表4.1 串及其运算4.1.1 串的基本概念4.1.2 串的抽象数据类型定义4.2 串的存储结构4.2.1 顺序存储结构4.2.2 链式存储结构4.3 串运算的实现4.3.1 串的基本运算4.3.2 模式匹配4.4 多维数组4.5 数组的顺序表示和实现4.6 矩阵的压缩存储4.6.1 特殊矩阵4.6.2 稀疏矩阵4.7 广义表4.7.1 广义表的逻辑结构4.7.2 广义表的存储结构及实现4.8 习题第5章 树和二叉树5.1 树的定义和基本术语5.1.1 树的定义5.1.2 树的表示方法5.1.3 树的术语5.2 二叉树5.2.1 二叉树基本概念5.2.2 二叉树的性质5.2.3 二叉树的存储结构5.2.4 二叉树的基本操作及实现5.3 二叉树遍历5.3.1 二叉树遍历简介5.3.2 线索二叉树5.3.3 线索二叉树的基本操作实现5.4 树和森林5.4.1 树的存储结构5.4.2 树和森林与二叉树之间的转换5.4.3 树和森林遍历5.5 哈夫曼树及其应用5.5.1 最优二叉树(哈夫曼树)5.5.2 哈夫曼树的构造算法5.5.3 哈夫曼树在编码问题中的应用5.6 习题5.7 实训第6章 图6.1 概述6.1.1 图的定义6.1.2 图的常用术语及含义6.2 图的存储结构6.2.1 邻接矩阵6.2.2 邻接表6.3 图的遍历6.3.1 深度优先搜索6.3.2 广度优先搜索6.4 生成树和最小生成树6.4.1 生成树6.4.2 最小生成树6.5 图的应用6.5.1 最短路径6.5.2 拓扑排序6.5.3 关键路径6.6 习题6.7 实训第7章 查找7.1 基本概念7.2 静态查找表7.2.1 顺序查找7.2.2 折半查找7.3 动态查找表7.3.1 二叉排序树7.3.2 平衡二叉树7.3.3 B一树7.4 哈希表7.4.1 哈希表的概念7.4.2 台希函数的构建7.4.3 处理冲突7.4.4 哈希表的查找及其分析7.5 习题7.6 实训第8章排序8.1 基本概念……第9章 实习实训

章节摘录

  我们知道,虽然每个人都懂得英语的语法与基本类型,但是对于同样的题目,每个人写出的作文,水平却高低不一。程序设计也和写英语作文一样,虽然程序员都懂得语言的语法与语义,但是对于同样的问题,不同程序员写出来的程序不一样。有的人写出来的程序效率很高,有的人却用复杂的方法来解决一个简单的问题。  当然,程序设计水平的提高仅仅靠看几本程序设计书是不行的。只有多思索、多练习,才能提高自己的程序设计水平;否则,书看得再多,提高也不大。程序设计水平要想提高,要多看别人写的程序,多去思考问题。从别人写的程序中,可以发现效率更高的解决方法;从思考问题的过程中,可以了解解决问题的方法常常不止一个。运用先前解决问题的经验,来解决更复杂更深入的问题,是提高程序设计水平的最有效途径。  数据结构正是前人在思索问题的过程中所想出的解决方法。一般而言,在学习程序设计一段时间后,学习“数据结构”便能让你的程序设计水平上一个台阶。如果只学会了程序设计的语法和语义,那么你只能解决程序设计三分之一的问题,而且运用的方法并不是最有效的。但如果学会了数据结构的概念,就能在程序设计上,运用最有效的方法来解决绝大多数的问题。  “数据结构”这门课程的目的有三个。第一个是讲授常用的数据结构,这些数据结构形成了程序员基本数据结构工具。对于许多常见的问题,这些数据结构是理想的选择。程序员可以直接拿来或经过少许的修改就使用,非常方便。第二个是讲授常用的算法,这和数据结构一样,是人们在长期实践过程中的总结,程序员也可以直接拿来或经过少许的修改就使用,并且可以通过算法训练来提高程序设计水平。第三个目的是通过程序设计的技能训练促进程序员综合能力的提高。

编辑推荐

  教学目标明确,注重理论与实践的结合;教学方法灵活,培养学生自主学习的能力;教学内容先进,强调计算机在各专业中的应用;教学模式完善,提供配套的教学资源解决方案。

图书封面

评论、评分、阅读与下载


    数据结构 PDF格式下载


用户评论 (总计0条)

 
 

 

250万本中文图书简介、评论、评分,PDF格式免费下载。 第一图书网 手机版

京ICP备13047387号-7