知识大全 数据结构复习重点归纳(适于清华严版教材)[3]
Posted 结构
篇首语:家资是何物,积帙列梁梠。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 数据结构复习重点归纳(适于清华严版教材)[3]相关的知识,希望对你有一定的参考价值。
数据结构大学教程
The Complete Data Structure Training Course
第一章 数据结构及其基本概念
Chapter Data Structure and It s Basic Concepts
什么是数据结构(What is Data Structure)
如果你问一个木匠学徒 你工作的工具要用什么 他可能会回答你 我只要一把锤子和一个锯 但是如果你去问一个老木工或者是大师级的建筑师 他会告诉你 我需要一些精确的工具 由于计算机所解决的问题都是从生活中抽象出来的问题 其复杂性不言而喻 所以我们需要这样精确有效的工具去解决现实生活中的复杂问题 算法 数据结构 程序设计语言都是这样的工具 数据结构是信息的组织方式 对于相同的算法 用不同的数据结构表示其中的抽象数据类型会造成不同的执行效率 这就有必要研究各种抽象数据类型用不同的数据结构表示的效率差异 以及其适用场合
[一]何谓数据结构(What is Data Structure)
数据结构是在整个计算机科学与技术领域上广泛被使用的术语 它用来反映一个数据的内部构成 即一个数据由哪些成分数据构成 以什么方式构成 呈什么结构 数据结构有逻辑上的数据结构和物理上的数据结构之分 逻辑上的数据结构反映成分数据之间的逻辑关系 而物理上的数据结构反映成分数据在计算机内部的存储安排 数据结构是信息的一种组织方式 好的数据结构可以提高算法的效率 它通常与一组算法的集合相对应 通过这组算法集合可以对数据结构中的数据进行某种操作 从学科角度来讲 数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象以及它们之间的关系和操作等等的学科
[二]数据结构学科的研究对象 (The Object of Data Structure Research)
数据结构作为一门学科 主要研究数据的各种逻辑结构和存储结构 以及对数据的各种操作 因此 主要有三个方面的内容 数据的逻辑结构;数据的物理存储结构;对数据的操作(即算法) 通常 算法的设计取决于数据的逻辑结构 算法的实现取决于数据的物理存储结构 数据结构的研究不仅涉及到计算机硬件的研究 比如存储装置和存取方法 而且解决编译原理 操作系统 数据库系统的数据元素在存储器中的分配问题的重要基础
基本概念与学科术语(Basic Concepts and Terminologies)
数据(Data):是一个集合的概念 是对客观事物的符号表示 在计算机科学中是指所有能被输入到计算机中 并被计算机处理的符号的总称 是计算机处理的信息的某种特定的符号表示形式
数据元素(Data Element):是数据的基本单位 数据中的一个 个体 又称为 记录 或者 表目
数据项(Data Item) 数据的不可分割的最小单位 数据元素是数据项的集合
数据对象(Data Object) 是性质相同的数据元素的集合 是数据的一个子集
[总结]
数据项组成数据元素 数据元素组成数据对象 数据对象组成数据
数据结构(Data Structure) 是相互之间存在一种或多种特定关系的数据元素的集合 它包括三个方面 数据元素的逻辑结构 存储结构和相适应的运算(操作)
数据元素之间的逻辑关系被称为数据元素的逻辑结构 可以用一个二元组表示
Data_Structure = (D S) // Data_Structure= (Data part Logic Structure Part)
这里D是数据元素的集合 S是定义在D(或其他集合)上的关系的集合
S = R │ R : D×D×
数据的逻辑结构可归结为以下四类:
( )集合结构
结构中的数据元素之间除了同属于一个集合的关系外别无其他关系
( )线性结构
结构中的数据元素之间存在一个对一个的前趋后继关系
在此种结构下
有且仅有一个元素无前趋元素
有且仅有一个元素无后继元素
其余任何一个元素均有且仅有一个前趋有且仅有一个后继元素
( )树形结构
结构中的数据元素之间存在一个对多个的关系
任何一个节点最多有一个前趋 可以有多个后继 是一种典型的非线性结构
( )图状结构(网状结构)
结构中的数据元素之间存在多个对多个的关系
这种结构的特征是任何一个元素可以有多个前趋 也可以有多个后继 是一种多对多的前趋后继关系
表和树是最常用的两种高效数据结构 许多高效的算法可以用这两种数据结构来设计实现 表是线性结构的(全序关系) 树(偏序或层次关系)和图(局部有序(weak/local orders))是非线性结构
数据结构在计算机中的表示(又称为映像)称为数据的存储结构(物理结构)
数据结构的物理结构是指逻辑结构的存储映像(image) 数据结构 DS 的物理结构 P 对应于从 DS 的数据元素到存储区M(维护着逻辑结构S)的一个映射
PD S) > M
存储器模型 一个存储器 M 是一系列固定大小的存储单元 每个单元 U 有一个唯一的地址 A(U) 该地址被连续地编码 每个单元 U 有一个唯一的后继单元 U =succ(U)
P 的四种基本映射模型 顺序(sequential) 链接(linked) 索引(indexed)和散列(hashing)映射 因此 我们至少可以得到 × 种可能的物理数据结构
sequential (sets)
linked lists
indexed trees
hashing
graphs
需要指出的是 并不是所有的可能组合都合理
数据结构DS上的操作 所有的定义在DS上的操作在改变数据元素(节点)或节点的域时必须保持DS的逻辑和物理结构
DS上的基本操作 任何其他对DS的高级操作都可以用这些基本操作来实现 最好将DS和他的所有基本操作看作一个整体——称之为模块(model) 我们可以进一步将该模块抽象为数据类型(其中DS的存储结构被表示为私有成员 基本操作被表示为公共方法) 称之为ADT(即是抽象数据类型Abstract Data Type 指一个数学模型以及定义在该模型上的一组操作)
ADT按照其值的不同特性分为下列三种类型
原子类型(Atomic Data Type) 变量是不带结构的 不可分解的
固定聚合类型(Fixed aggregate Data Type) 其值由确定数目的成分按照某种结构组成
可变聚合类型(Variable Aggregate Data Type) 值的成分的数目不确定
抽象数据类型的描述方法
抽象数据类型可用(D S P)三元组表示
其中 D是数据对象 S是D上的关系集 P是对D的基本操作集
ADT 抽象数据类型名
数据对象 〈数据对象的定义〉
数据关系 〈数据关系的定义〉
基本操作 〈基本操作的定义〉
ADT 抽象数据类型名
其中 数据对象和数据关系的定义用伪码描述 基本操作的定义格式为
基本操作名(参数表)
初始条件 〈初始条件描述〉
操作结果 〈操作结果描述〉
基本操作有两种参数 赋值参数只为操作提供输入值;引用参数以&打头 除可提供输入值外 还将返回操作结果 初始条件 描述了操作执行之前数据结构和参数应满足的条件 若不满足 则操作失败 并返回相应出错信息 操作结果 说明了操作正常完成之后 数据结构的变化状况和应返回的结果 若初始条件为空 则将其省略 需要注意的是 抽象数据类型需要通过固有数据类型(高级编程语言中已实现的数据类型)来实现
顺便提一句 多形数据类型(Polymorphic Data Type)是指值的成分不确定的数据类型 不过这个不太多见 或者是可以用ADT表示 所以我们在今后的章节再论述
好的和坏的DS 如果一个DS可以通过某种 线性规则 被转化为线性的DS(例如线性表) 则称它为好的DS 好的DS通常对应于好的(高效的)算法 这是由计算机的计算能力决定的 因为计算机本质上只能存取逻辑连续的内存单元 因此如何没有线性化的结构逻辑上是不可计算的 比如对一个图进行操作 要访问图的所有结点 则必须按照某种顺序来依次访问所有节点(要形成一个偏序) 必须通过某种方式将图固有的非线性结构转化为线性结构才能对图进行操作
树是好的DS——它有非常简单而高效的线性化规则 因此可以利用树设计出许多非常高效的算法 树的实现和使用都很简单 但可以解决大量特殊的复杂问题 因此树是实际编程中最重要和最有用的一种数据结构 树的结构本质上有递归的性质——每一个叶节点可以被一棵子树所替代 反之亦然 实际上 每一种递归的结构都可以被转化为(或等价于)树形结构 说到递归在北京大学的数据结构课程里面有个老师经常说 不懂递归就不算北大计算机系的学生 这样看来足以从侧面说明书的结构的重要性
cha138/Article/program/sjjg/201311/23999相关参考
一数据结构的章节结构及重点构成 数据结构学科的章节划分基本上为概论线性表栈和队列串多维数组和广义表树和二叉树图查找内排外排文件动态存储分配 对于绝大多数的学校而言外排文件动态存储分配三章基本上
下面我们看一下图这一章的主要考点以及这些考点的考查方式 考查有关图的基本概念问题 这些概念是进行图一章学习的基础这一章的概念包括图的定义和特点无向图有向图入度出度完全图生成子图路径长度回路(强
三复习方法 教材的选择 从考试大纲来看所要求的知识在一般的大学数据结构教材中都已经包含所以选择哪本书并不是最重要的事情不过根据希赛教育推荐对于数据结构的复习可以选择清华大学出版社的《数据结构(
三备考复习方法 在复习的过程复习始终围绕教材展开笔者认为数据结构的复习备考可以分为四个阶段 由于数据结构一般在第三个学期进行教学且数据结构本身也具有一定的难度所以第一个阶段就是熟悉教材熟悉教材
谁能给一份初一上的生物复习资料(重点归纳)急!一、生物对环境的适应P19的例子二、生物对环境的影响:植物的蒸腾作用调节空气湿度、植物的枯叶枯枝腐烂后可调节土壤肥力、动物粪便改良土壤、蚯蚓松土第四节生态
四参考资料 目前国内数据结构教材的版本有PascalCC++Java多但C语言版本的教材是使用最广的教材虽然考试大纲还没有出来但基本上可以确定的教材是清华大学出版社出版严蔚敏等著的《数据结构(C
清华大学本科计算机专业有哪些课程,用哪些教材?一年级第一学期:高等数学,英语,体育,计算机导论,其他的课程(都不是很重要)第二学期:高等数学,英语,体育,C语言,线性代数,大学物理,还有其它的都不是很
知识大全 清华大学会计专业考研都考哪些科目,有没有指定的参考教材
清华大学会计专业考研都考哪些科目,有没有指定的参考教材?有过这方面经验的同学请指导一下!谢谢!政治,英语,数学,全国统一命题专业课一:(120201)会计学专业课二:(879)企业管理(包括微观经济学
知识大全 清华大学经管学院学的《会计学原理》《经济学原理》《信息管理导论》这几本教材的作者和出版单位。
清华大学经管学院学的《会计学原理》《经济学原理》《信息管理导论》这几本教材的作者和出版单位。会计学原理的书根据老师的不同而不同,但内容大致相同,上课的内容和书并不是完全一致的。其中薛健的更学术一点。经
试画出从空树开始由字符序列(tdesugbjakri)构成的二叉平衡树并为每一次的平衡处理指明旋转类型【清华大学三(分)】 给定关键词输入序列CAPAQUPISARITAUGEMCANLIBVI