出版时间:2010-2 出版社:中国电力出版社 作者:王聪华 编 页数:207
前言
计算机从诞生的那一天起就与数据处理紧密相关,最初的想法是用于解决科学上复杂、繁重的数值计算问题,以减轻脑力劳动、提高运算效率。随着计算机科学技术的发展,计算机解决问题的范围也更加广泛,目前已涉及字符、文字、图形、图像、声音等非数值计算问题。数据结构主要以非数值计算问题为研究对象,研究数据的表示、数据之间的关系和数据处理的算法。它是计算机专业及其他信息类专业的重要基础课和核心课,也是软件设计的重要支撑基础。本教材编写的主导思想是解决欠发达地区高校学生层次较低、基础较差、学习数据结构课程有一定困难的问题,定位于应用型本科层次。教材不拘泥于“五脏齐全”,主要着眼于数据结构的基本概念、知识点和基本的算法,以及数据结构解决问题的思想和方法,重点训练和培养学生程序设计的基本能力和思维,力求为操作系统原理、编译原理等后续课程的学习奠定基础。依据主导思想,教材在写作上语言通俗,讲解细腻,表达精练,尽量避免出现深奥的专业术语。在内容安排上结构清晰、层次分明,力求突出重点,分解难点,算法表达精练、易读易懂;注重应用,讲究实用。教材共分为9章。第1章介绍数据结构的概念和基本术语,算法和算法分析;第2章介绍线性表的顺序存储和链式结构,以及基本运算的实现;第3章介绍栈和队列概念、存储、基本运算和应用:第4章介绍串的概念、存储和基本运算,模式匹配算法,数组的概念和存储,特殊矩阵和稀疏矩阵的存储;第5章介绍树和二叉树的概念、存储和基本运算,线索二叉树的概念、创建和遍历算法;第6章介绍图的概念、各种存储结构和图的应用,图的遍历和图的应用;第7章介绍各种查找算法的实现过程;第8章介绍各种内排序算法的实现;第9章介绍各种文件组织方式。教材每章之后都配有一定数量的习题,习题种类丰富,既考虑到数据结构各章节基本概念和知识点的掌握,也考虑到算法设计能力的训练和提高,读者可以通过做练习和上机调试程序,加深对概念和算法的理解,巩固和提高所学知识,提高分析问题和解决问题的能力。与本教材配套出版的还有实验指导书,该书中有大量的习题参考答案、实验实例和模拟试卷,以供读者配合数据结构课程的学习。教材中的全部算法用c语言描述,配套实验指导书中所涉及的算法实现全部以VisualC++的环境为基础,读者的学习可以完全依托于Windows操作系统。使用本教材授课时,实验题目可采用配套实验指导书的内容。本书由杨兴运主审。本教材的作者都有着多年的数据结构课程教学经验,并对教材的编写和算法的设计倾注了大量的精力,但课程所涉及的内容较多,算法数量大、细节多,难免存在错误和不足,敬请同行专家和读者批评指正。
内容概要
本书为21世纪高等学校规划教材。本书主要内容包括数据结构的概念和术语、线性表、栈与队列、串与数组、广义表、树与二叉树、图及应用、查找和排序。每章之后配有多种类型的习题,方便读者加深对所学基本概念的理解,巩固所学知识。与本教材配套的还有实验指导书,方便读者上机训练和实践。本教材力求语言通俗,讲解细腻,概念表述简明、严谨;力求突出重点,分解难点,算法表达精练、易读易懂;注重应用实践,注意训练学生的应用和实践能力。 本书可作为应用型本科计算机及相关专业的教材,也可供自学人员及工程技术人员学习参考。
书籍目录
前言第1章 绪论 1.1 数据结构研究的问题 1.2 基本概念与术语 1.3 算法和算法分析 1.4 算法描述工具简介 1.5 本章小结 1.6 习题第2章 线性表 2.1 线性表的基本概念 2.2 线性表的顺序存储结构及运算 2.3 线性表的链式存储结构及运算 2.4 线性链表的应用举例 2.5 本章小结 2.6 习题第3章 栈和队列 3.1 栈 3.2 队列 3.3 本章小结 3.4 习题第4章 串、数组和广义表 4.1 串 4.2 串的模式匹配 4.3 数组 4.4 稀疏矩阵 4.5 广义表 4.6 本章小结 4.7 习题第5章 树和二叉树 5.1 树的定义与基本术语 5.2 二叉树 5.3 哈夫曼树 5.4 线索二叉树 5.5 树和森林 5.6 树和森林的遍历 5.7 本章小结 5.8 习题第6章 图 6.1 图的基本概念 6.2 图的存储表示 6.3 图的遍历 6.4 最小生成树 6.5 最短路径 6.6 拓扑排序 6.7 AOE网与关键路径 6.8 本章小结 6.9 习题第7章 查找 7.1 基本概念 7.2 顺序查找 7.3 有序表的二分查找 7.4 分块查找 7.5 二叉排序树 7.6 哈希表查找 7.7 本章小结 7.8 习题第8章 内部排序 8.1 排序的基本概念 8.2 插入排序 8.3 选择排序 8.4 交换排序 8.5 归并排序 8.6 基数排序 8.7 本章小结 8.8 习题第9章 文件 9.1 文件的基本概念 9.2 文件的结构 9.3 顺序文件 9.4 索引文件 9.5 ISAM文件和VSAM文件 9.6 散列文件 9.7 多关键字文件 9.8 习题参考文献
章节摘录
插图:2.算法的特性算法除了求解步骤的顺序性之外还具有以下五个重要特征。(1)有穷性。是指一个算法的操作步骤必须是有限的。换句话说,任何问题在经过有限个步骤之后,一定能够完成,因为用计算机求解问题不允许无限计算下去却永远得不到结果。(2)确定性。它要求每一个步骤所要执行的操作或运算必须是完全确定的,不能似是而非。因为计算机不像人一样能灵活判断分析,只能按算法的步骤机械地执行规定的动作,当某个步骤的操作有歧义性时,机器将不知道该如何做。(3)可行性。这是指算法的每一个步骤,计算机都能执行。计算机所能执行的动作是预先设计好的,一旦出厂就不会改变,所以,设计算法时应保证每个步骤都必须能用计算机所能执行的操作命令实现。(4)输入性。一个算法应该有0个以上的输入数据。算法是数据加工处理过程的控制程序,而数据是被处理的原材料,执行一个算法首先应提供这些数据,当然,有些问题的算法可能不需要输入数据,这并不意味着没有数据处理,而是被处理的数据已经在机器内,或者是在加工处理中生成的。(5)输出性。每个算法必须有1个以上的输出数据。无论如何,算法执行完后,一定要给出一个结果,或者是写出结果数据,或者是一个明确的是或不是、成功或不成功、对或错的回答信息,或者是算法本身出现的错误提示等。1.3.2算法的描述(1)自然语言描述。用人类通常使用的语言表示算法。该方法的优点是自然、方便,易读、易理解;缺点是存在歧义性。(2)图形描述。用某些图形表示算法步骤和控制流程。该方法的优点是简单、直观、形象、容易阅读理解;缺点是对于复杂的算法可能产生很大图形,画图和阅读不方便。(3)某种类语言描述。类语言是介于自然语言和形式化的编程语言之间的一种专用语言。如常用的类c、类c++、类Pascal、类Java等。它们形式上像程序设计语言,但不拘泥于严格的语法规则,具有自然语言那种较灵活自由的性质。(4)某种编程语言描述。用某种编程语言描述就是程序。可以直接编译执行。由于编程语言的严格语法约束,一般不使用,只有当算法上机实现时才使用。以下用实例分别说明自然语言和类c语言描述算法的基本方法。
编辑推荐
《数据结构(C语言版)》:21世纪高等学校规划教材
图书封面
评论、评分、阅读与下载