数据结构

当前位置:首页 > 教材 > 高职高专 > 数据结构

出版社:清华大学出版社
出版日期:2010-6
ISBN:9787302228141
页数:261页

章节摘录

插图:在计算机领域,一个算法实质上是针对所处理问题的需要,在数据的逻辑结构和存储结构的基础上实施的一种运算。由于数据的逻辑结构和存储结构不是唯一的,所以处理同一个问题的算法也不是唯一的;即使对于具有相同逻辑结构和存储结构的问题而言,由于设计思想和设计技巧不同,编写出来的算法也不大相同。学习数据结构这门课程的目的,就是要学会根据实际问题的需要,为数据选择合适的逻辑结构和存储结构,进而设计出合理和实用的算法。1.4.1 算法的基本概念既然算法在程序设计中如此重要,那么什么是算法呢?我们先看看这样的问题:假设计算两个整型数据的和,我们可以采用某种语言将这个求和运算的过程描述出来,那么这个运算过程的描述,就可以看成是一个小小的算法;另外,将一组给定的数据由小到大进行排序,解决的方法有若干种,而每一种排序方法就是一种算法。从上面的问题描述中,我们对算法应该有了一个大概的了解,简单地说,算法类似于程序设计中的函数。1.算法算法(Algorithm)是指用于解决特定问题的方法,是对问题求解过程的一种描述。它是指令的有限序列,其中每一条指令表示计算机的一个或多个操作。2.算法的特征算法是解决问题的特定方法,但它不同于计算方法,原因是算法有它自己的一些特征。(1)有穷性。一个算法必须总是(对任何合法的输入值)在执行有穷步之后结束,且每一步都可在有穷时间内完成。即一个算法对于任意一组合法输入值,在执行有穷步骤之后一定要结束。(2)确定性。对于每种情况下所对应执行的操作,在算法中都有确切的规定,算法的执行者或阅读者都能明确其含义及如何执行。并且在任何条件下,算法都只有一条执行路径。(3)可行性。算法中的所有操作都可以通过已经实现的基本运算执行有限次来实现。(4)有输入。一个算法应该有0个或多个由外界提供的量(输入)。没有输入的算法是缺乏灵活性的算法。算法开始时,一般要给出初始数据,这里0个输入是指算法的初始数据在算法内部给出,不需要从外部输入数据。

前言

一、编写目的关于立体化教材,国内外有多种说法,有的叫“立体化教材”,有的叫“一体化教材”,有的叫“多元化教材”,其目的是一样的,就是要为学校提供一种教学资源的整体解决方案,最大限度地满足教学需要,满足教育市场需求,促进教学改革。我们这里所讲的立体化教材,其内容、形式、服务都是建立在当前技术水平和条件基础上的。立体化教材是一个“一揽子”式的,包括主教材、教师参考书、学习指导书、试题库在内的完整体系。主教材讲究的是“精品”意识,既要具备指导性和示范性,也要具有一定的适用性,喜新不厌旧。那种内容越编越多,本子越编越厚的低水平重复建设在“立体化”的世界中将被扫地出门。和以往不同,“立体化教材”中的教师参考书可不是千人一面的,教师参考书不只是提供答案和注释,而是含有与主教材配套的大量参考资料,使得老师在教学中能做到“个性化教学”。学习指导书更像一本明晰的地图册,难点、重点、学习方法一目了然。试题库或习题集则要完成对教学效果进行测试与评价的任务。这些组成部分采用不同的编写方式,把教材的精华从各个角度呈现给师生,既有重复、强调,又有交叉和补充,相互配合,形成一个教学资源有机的整体。除了内容上的扩充,立体化教材的最大突破还在于在表现形式上走出了“书本”这一平面媒介的局限,如果说音像制品让平面书本实现了第一次“突围”,那么电子和网络技术的大量运用就让躺在书桌上的教材真正“活”了起来。用PowerPoint开发的电子教案不仅大大减少了教师案头备课的时间,而且也让学生的课后复习更加有的放矢。电子图书通过数字化使得教材的内容得以无限扩张,使平面教材更能发挥其提纲挈领的作用。CAI(计算机辅助教学)课件把动画、仿真等技术引入了课堂,让课程的难点和重点一目了然,通过生动的表达方式达到深入浅出的目的。在科学指标体系控制之下的试题库既可以轻而易举地制作标准化试卷,也能让学生进行模拟实战的在线测试,提高了教学质量评价的客观性和及时性。网络课程更厉害,它使教学突破了空间和时间的限制,彻底发挥了立体化教材本身的潜力,轻轻敲击几下键盘,你就能在任何时候得到有关课程的全部信息。最后还有资料库,它把教学资料以知识点为单位,通过文字、图形、图像、音频、视频、动画等各种形式,按科学的存储策略组织起来,大大方便了教师在备课、开发电子教案和网络课程时的教学工作。如此一来,教材就“活”了。学生和书本之间的关系不再像领导与被领导那样呆板,而是真正有了互动。教材不再只为老师们规定什么重要什么不重要,而是成为教师实现其教学理念的最佳拍档。

书籍目录

第1章  绪论  1.1  引言  1.2  基本概念与术语  1.3  抽象数据类型    1.3.1  数据类型    1.3.2  抽象数据类型概述  1.4  算法和算法分析    1.4.1  算法的基本概念    1.4.2  算法的时间复杂度    1.4.3  算法的空间复杂度    本章小结    习题第2章  线性表  2.1  线性表的定义及其基本操作    2.1.1  线性表的引例    2.1.2  线性表的定义    2.1.3  线性表的基本操作  2.2  线性表的顺序存储结构    2.2.1  顺序表结构    2.2.2  顺序表的基本操作  2.3  线性表的链式存储结构    2.3.1  链式存储结构    2.3.2  单链表上的基本运算    2.3.3  循环链表和双向链表  2.4  顺序表与链表的比较  2.5  线性表的应用    本章小结    习题第3章  栈和队列  3.1  栈    3.1.1  栈的引例    3.1.2  栈的定义及基本操作    3.1.3  栈的顺序存储表示和操作的实现    3.1.4  栈的链式存储表示和操作的实现  3.2  栈的应用  3.3  队列    3.3.1  队列的引例    3.3.2  队列的定义及基本操作    3.3.3  队列的顺序存储表示和操作的实现    3.3.4  队列的链式存储表示和操作的实现  3.4  队列的应用    本章小结    习题第4章  串  4.1  串的定义及基本操作    4.1.1  串的基本概念    4.1.2  串的基本操作  4.2  串的存储结构    4.2.1  串的顺序存储结构    4.2.2  串的堆式存储    4.2.3  串的块链式存储结构  4.3  串的应用    本章小结    习题第5章  数组  5.1  数组的定义和运算  5.2  数组的顺序存储结构  5.3  矩阵的压缩存储结构    5.3.1  特殊矩阵    5.3.2  稀疏矩阵  5.4  广义表的定义  5.5  广义表的存储结构    5.5.1  头尾表示法    5.5.2  孩子兄弟表示法  5.6  数组的应用    本章小结    习题第6章  树和二叉树  6.1  树的概念和基本操作    6.1.1  树的引例    6.1.2  树的定义和基本术语    6.1.3  树的基本操作  6.2  二叉树    6.2.1  二叉树的定义    6.2.2  二叉树的性质    6.2.3  二叉树的基本操作  6.3  二叉树的存储结构    6.3.1  顺序存储结构    6.3.2  链式存储结构  6.4  二叉树的遍历    6.4.1  先序遍历    6.4.2  中序遍历    6.4.3  后序遍历    6.4.4  层次遍历  6.5  线索二叉树    6.5.1  线索二叉树的概念    6.5.2  中序线索二叉树的构造算法    6.5.3  线索二叉树的遍历  6.6  哈夫曼树及其应用    6.6.1  哈夫曼树的定义    6.6.2  构造哈夫曼树    6.6.3  哈夫曼树的应用  6.7  树与森林    6.7.1  树的存储结构    6.7.2  树、森林与二叉树的转换  6.8  二叉树的应用    本章小结    习题第7章  图  7.1  图的定义和术语    7.1.1  图的引例    7.1.2  图的定义    7.1.3  图的基本术语  7.2  图的存储结构    7.2.1  邻接矩阵    7.2.2  邻接链表  7.3  图的遍历    7.3.1  深度优先搜索    7.3.2  广度优先搜索  7.4  最小生成树    7.4.1  普里姆(Prim)算法    7.4.2  克鲁斯卡尔(Kruskal)算法  7.5  最短路径    7.5.1  单源最短路径    7.5.2  每一对顶点之间的最短路径  7.6  AOV网拓扑排序    7.6.1  AOV网    7.6.2  AOV网拓扑排序  7.7  图的应用    本章小结    习题第8章  查找  8.1  基本概念  8.2  静态查找表    8.2.1  顺序查找    8.2.2  折半查找    8.2.3  分块查找  8.3  动态查找表    8.3.1  二叉排序树的概念    8.3.2  二叉排序树的查找    8.3.3  二叉排序树的插入和生成    8.3.4  二叉排序树的删除    8.3.5  二叉排序树查找算法效率分析  8.4  哈希表查找    8.4.1  哈希表的概念    8.4.2  哈希函数的构造方法    8.4.3  处理冲突的方法    8.4.4  哈希表的查找  8.5  查找的应用    本章小结    习题第9章  排序  9.1  基本概念  9.2  插入排序    9.2.1  直接插入排序    9.2.2  希尔排序  9.3  交换排序    9.3.1  冒泡排序    9.3.2  快速排序  9.4  选择排序    9.4.1  直接选择排序    9.4.2  堆排序  9.5  归并排序  9.6  各种内部排序方法的比较  9.7  排序的应用    本章小结    习题附录A  习题答案参考文献

编辑推荐

《数据结构(C语言版)》:高职高专立体化教材·计算机系列

作者简介

《数据结构(C语言版)》系统地介绍了各种常用的数据结构以及查找、排序算法,对每种数据结构以实例作为切入点,详细阐述了基本概念、逻辑结构、存储表示、基本操作以及相关的应用,书中每章均有典型案例,并给出了算法实现的思路及完整的c程序。为了便于学生自学和教师教学,每章后均配有大量习题及参考答案。附录B是各章实训题目及参考答案。《数据结构(C语言版)》中所有程序均在TC2.0下调试运行通过。
《数据结构(C语言版)》内容精练,通俗易懂,既便于教学,又适合自学。《数据结构(C语言版)》既可作为高职高专计算机专业及信息管理专业讲授数据结构课程的教材,也可作为从事计算机软件与应用的工作人员、参加自学考试的考生及社会上数据结构学习者的参考用书。

图书封面


 数据结构下载



发布书评

 
 


精彩短评 (总计1条)

  •     书的组织比较合理,条理清楚,配有答案,方便使用
 

外国儿童文学,篆刻,百科,生物科学,科普,初中通用,育儿亲子,美容护肤PDF图书下载,。 零度图书网 

零度图书网 @ 2024