普通高等院校计算机专业


普通高等院校计算机专业

文章插图
普通高等院校计算机专业【普通高等院校计算机专业】《普通高等院校计算机专业(本科)实用教程系列:数据结构实用教程(Java语言描述)》是为全国高等院校计算机及相关专业开设数据结构课程而精心编着的一本实用教材 。《普通高等院校计算机专业(本科)实用教程系列:数据结构实用教程(Java语言描述)》按照面向对象的程式设计方法,採用目前广泛使用的Java语言描述各种数据结构和运算方法,使得一种数据结构对应一种操作接口,进而通过不同的存储类型来实现 。《普通高等院校计算机专业(本科)实用教程系列:数据结构实用教程(Java语言描述)》共分为11章,依次为绪论、集合、线性表、稀疏矩阵和广义表、栈和伫列、树和二叉树、常用二叉树、图、图的套用、查找、排序 。
基本介绍书名:普通高等院校计算机专业
出版社:清华大学出版社
页数:331页
开本:16
定价:35.00
作者:徐孝凯
出版日期:2013年1月1日
语种:简体中文
ISBN:9787302307020
内容简介《普通高等院校计算机专业(本科)实用教程系列:数据结构实用教程(Java语言描述)》内容丰富实用,结构层次分明,叙述简明易懂,运算方法分析透彻,所有算法描述都能够直接上机运行 。这些显着特点都是作者多年来教材编写和教学经验的结晶,已经得到广大读者的认可 。《普通高等院校计算机专业(本科)实用教程系列:数据结构实用教程(Java语言描述)》可作为普通高等院校计算机及相关专业“数据结构”课程的教材或教学参考书 。图书目录第1章绪论/1 1.1基本概念/1 1.2算法描述/11 1.3算法评价/13 第2章集合/20 2.1集合的定义和运算/20 2.1.1集合的定义/20 2.1.2集合的抽象数据类型/20 2.1.3集合运算举例/21 2.2集合的顺序存储结构和操作实现/23 2.3集合的连结存储结构和操作实现/30 2.3.1连结存储的概念/30 2.3.2连结集合类的定义和实现/33 2.4集合套用举例/39 第3章线性表/47 3.1线性表的定义和运算/47 3.1.1线性表的定义/47 3.1.2线性表的抽象数据类型/48 3.1.3线性表运算举例/49 3.2线性表的顺序存储结构和操作实现/52 3.3有序线性表的定义和实现/60 3.4连结存储的一般概念和方法/65 3.5线性表的连结存储结构和操作实现/70 3.6有序线性表的连结存储结构和操作实现/76 3.7线性表套用举例——多项式计算/78 3.7.1多项式表示与求值/78 3.7.2两个多项式相加/82 第4章稀疏矩阵和广义表/86 4.1稀疏矩阵/86 4.1.1稀疏矩阵的定义/86 4.1.2稀疏矩阵的转置运算/88 4.1.3稀疏矩阵的加法运算/90 4.1.4使用稀疏矩阵的程式举例/92 4.2广义表/94 4.2.1广义表的定义/94 4.2.2广义表的存储结构/96 4.2.3广义表类的定义/97 4.2.4广义表的运算/99 4.2.5简单程式举例/103 第5章栈和伫列/105 5.1栈的定义和运算/105 5.2栈的顺序存储结构和操作实现/106 5.3栈的连结存储结构和操作实现/110 5.4栈的简单套用举例/112 5.5算术表达式的计算/116 5.6栈与递归/124 5.7伫列/133 5.7.1伫列的定义和运算/133 5.7.2伫列的顺序存储结构和操作实现/134 5.7.3伫列的连结存储结构和操作实现/139 第6章树和二叉树/141 6.1树的概念/141 6.1.1树的定义/141 6.1.2树的表示/142 6.1.3树的基本术语/142 6.1.4树的性质/144 6.2二叉树/145 6.2.1二叉树的定义/145 6.2.2二叉树的性质/145 6.2.3二叉树的抽象数据类型/147 6.2.4二叉树的存储结构/148 6.3二叉树遍历/153 6.4二叉树的其他运算/156 6.5调试二叉树算法举例/160 6.6树的存储结构和运算/161 6.6.1树的抽象数据类型/161 6.6.2树的存储结构/162 6.6.3树的运算/166 6.6.4调试普通树算法举例/171 第7章常用二叉树/173 7.1二叉搜寻树/173 7.1.1二叉搜寻树的定义/173 7.1.2二叉搜寻树的抽象数据类型和连结存储类/174 7.1.3二叉搜寻树的运算方法/175 7.2堆/181 7.2.1堆的定义/181 7.2.2堆的接口类/182 7.2.3堆的存储结构和顺序存储类/182 7.2.4堆的运算/184 7.3哈夫曼树/189 7.3.1基本术语/189 7.3.2构造哈夫曼树/190 7.3.3哈夫曼编码/193 7.4平衡二叉树/195 7.4.1平衡二叉树的定义/195 7.4.2平衡二叉树的调整/197 第8章图/202 8.1图的概念/202 8.1.1图的定义/202 8.1.2图的基本术语/203 8.2图的存储结构/205 8.2.1邻接矩阵/205 8.2.2邻接表/207 8.2.3边集数组/208 8.3图的抽象数据类型和接口类/209 8.4图的邻接矩阵和邻接表存储类/210 8.5图的遍历/214 8.5.1深度优先搜寻遍历/214 8.5.2广度优先搜寻遍历/217 8.5.3非连通图的遍历/219 8.6对图的其他运算的算法/219 第9章图的套用/231 9.1图的生成树和最小生成树/231 9.1.1生成树的概念/231 9.1.2普里姆算法/233 9.1.3克鲁斯卡尔算法/237 9.2最短路径/240 9.2.1最短路径的概念/240 9.2.2从一顶点到其余各顶点的最短路径/241 9.2.3每对顶点之间的最短路径/246 9.3拓扑排序/250 9.3.1拓扑排序的概念/250 9.3.2拓扑排序算法/252 9.4关键路径/256 第10章查找/264 10.1查找的基本概念/264 10.2顺序表查找/265 10.2.1顺序查找/265 10.2.2二分查找/267 10.3索引查找/269 10.3.1索引的概念/269 10.3.2索引存储举例/270 10.3.3索引查找算法/273 10.3.4分块查找/274 10.4散列查找/276 10.4.1散列的概念/276 10.4.2散列函式/278 10.4.3处理冲突的方法/280 10.4.4散列表的运算/284 10.5B树查找/293 10.5.1B_树的定义/293 10.5.2B_树查找/294 10.5.3B_树的插入/296 10.5.4B_树的删除/299 10.5.5定义B_树的类/302 10.5.6B+树简介/304 第11章排序/306 11.1排序的基本概念/306 11.2插入排序/308 11.3选择排序/309 11.3.1直接选择排序/309 11.3.2堆排序/310 11.4交换排序/313 11.4.1气泡排序/314 11.4.2快速排序/315 11.5归併排序/318 11.6外排序/322 11.6.1外排序的概念/322 11.6.2外排序算法/323 参考文献/332文摘着作权页: 插图: 字元类型中的每个值(字元)在计算机存储系统中通常用一个或两个位元组表示,若採用一个位元组,则字元类型的表示範围为0~255或—128~127,能够至多对256种不同的字元进行编码 。对字元类型的数据允许进行的运算主要为赋值和各种关係运算 。字元串类型中的每个值(字元串)为字元的顺序排列结构(即线性结构),字元串类型的取值範围很广泛,任何一个字元序列,如姓名、地址、编号等非数值的数据信息都是一个字元串 。对字元串的运算主要有求字元串的长度、字元串的複製、字元串的连线、字元串的比较等 。1)数据类型分类 数据类型可以被分为简单类型和结构类型两大类 。简单类型中的每个值通常只作为整体使用,如一个整数、实数、字元、指针、枚举量等都是相应简单类型中的数据 。结构类型由简单类型按照一定的规则构造而成,并且结构类型仍可以包含结构类型,所以一种结构类型中的数据(即结构数据)可以分解为若干个简单数据或结构数据,每个结构数据仍可再分 。例如,数组就是一种具有线性数据结构的结构数据类型,数组中的每一种数组值包含有固定个数的同一类型的数据,每个数据(元素)都可以通过下标运算符直接访问 。记录也是一种具有线性数据结构的结构数据类型,记录中的每一个记录值包含固定个数的不同类型的数据成员,每个数据成员都可以通过成员运算符和成员名直接访问 。另外,像字元串和档案也都是计算机高级语言中经常提供的结构数据类型 。2)数据类型与数据值 无论是简单类型还是结构类型都有“型”和“值”的区别,“型”是“值”的抽象定义,一种数据类型中的任一数据称为该类型中的一个值,又被称为实例,该值(实例)与所属数据类型具有完全相同的逻辑结构,数据类型所规定的运算都是在值上进行的 。所以在一般的叙述中,并不明确指出是数据“型”还是数据“值”,读者应根据上下文加以理解 。例如,提到记录时,当讨论的是记录结构则认为是记录型,当讨论的是具体一条记录时则认为是记录值 。3)数组的逻辑结构 对于在计算机语言中使用的数组、记录、字元串和档案等结构数据类型,每个值中的元素(成分)是按位置前后有序排列的,所以它们各自都具有线性数据结构 。数组的逻辑结构是线性数据结构,採用二元组形式可描述为: a[i]为数组中的下标为i的元素,n为大于等于1的整数,用来表明数组中元素的个数,即数组长度,数组元素的下标从0到,2—1,数组中前后相邻位置上的两个元素为一个序偶,其前一元素a[i]是后一元素a[i+1]的前驱,而a[i+1]是a[i]的后继,第一个元素a【0]无前驱元素,最后一个元素a[n—1]无后继元素 。按数组下标的个数,可把数组分为一维、二维、三维等 。一维数组中的每个元素只包含一个下标,二维数组中的每个元素包含两个下标,第一个称为行下标,第二个称为列下标 。