数据结构专业知识

1.数据结构怎么学

很多计算机专业的同学对于大学2年级开设的数据结构课程很是头痛. 看见大家总在谈论数据结构重要性,可使自己学习却总也找不到合适的方法. 内容都是来自作者本人的一些经历和体验,希望对于大家学习数据结构有引导作用。

数据结构从文字上面来看,为数据和结构两部分。这样就很容易联系到数据结构的本质是一种对于数据结构花的知识。

补充一个知识点,数据结构本质和离散数学有很密切的关系。离散数学是处理的是离散(非连续的)的数据,站在数据结构的观点上来看,也可以理解是一种非连续数据的结构。

2 数据结构和程序设计语言 数据结构和程序设计语言本身没有任何联系,唯一有的关系就实用程序语言去描述数据结构。 因为数据结构是一种抽象数据,通过程序设计语言可以将在计算机中进行实现。

今天大学里数据结构课程常用来描述数据结构的语言有C程序设计语言,C 程序设计语言和JAVA程序设计语言. 而对于喜欢其他语言的同学完全可以自己通过学习数据结构后用自己熟悉的程序设计语言去完成程序化的描述. 我自己过去很喜欢C#程序设计语言,自己用C#程序设计对于一些数据结构进行了实现. 大家可以通过访问CSTC我的专栏看到两篇C#描述的数据结构 3 数据结构学习的技巧 3.1 学习数据结构的概念后对于抽象数据类型的设计参考C STL标准库中容器的设计.这样对于无论是数据结构的学习还有程序设计接口能力上都会有很大的提高. 3.2 对于数据结构课程中很多时候都不太重视的顺序(数组)做存储的数据结构,希望大家还是要多留意这快的知识.对于有些场合需要考虑时间换空间的情况下需要考虑顺序存储结构. 3.3?数据结构学习一定要自己独立完成代码实现,虽然有时候你理解内容了,但是实现上面还是会愈要很多困难的,解决这些困难会帮助你提高程序设计的能力的. 推荐一本习题集 C 描述的数据结构的习题集(英文版) 数据结构是计算机专业最重要最基础的一门课,对于有过编程经验的人,结合自己的编程体会去悟它的思想;对于初学者,捡一种自己最熟悉的语言去分析它总之千万不要陷在语言的细节上要高屋建瓴的去领会数据结构的思想。而且我觉得随着编程经历的丰富对它的体会越深入,最初接触是对一些思想可能只是生硬的记忆,随着学习的深入逐渐领悟了很多。

奉劝孔孔不要灰心,对于实在弄不懂的东东,就先记住,应付过考试再说。

2.数据结构的基础知识

第一章 什么是数据结构1.1 基本概念和术语1.2 数据的逻辑结构和物理结构 1.1 基本概念和术语1.数据(data): 是对客观事物的符号的表示,是所有能输入到计算机中并被计算机程序处理的符号的总称。

2.数据元素(data element): 是数据的基本单位,在计算机程序中通常作为一个整体来处理。一个数据元素由多个 数据项(data item)组成,数据 项是数据不可分割的最小单位。

3.数据结构(data structure): 是相互之间存在一种或多种特定关系的数据元素的集合。数据结构是一个二元组,记为: data_structure=(D,S).其中D为数据元素的集合,S是D上关系的集合。

数据元素相互之间的关系称为结构(structure)。根据数据元素之间关系的不同特性,通常由下列四类基本结构: (1)集合:数据元素间的关系是同属一个集合。

(图1) (2)线性结构:数据元素间存在一对一的关系。(图2) (3)树形结构:结构中的元素间的关系是一对多的关系。

(图3) (4)图(网)状结构:结构中的元素间的关系是多对多的关系。(图4) 1.2 数据的逻辑结构和物理结构逻辑结构:数据元素之间存在的关系(逻辑关系)叫数据的逻辑结构。

物理结构:数据结构在计算机中的表示(映象)叫数据的物理结构。 一种逻辑结构可映象成不同的存储结构:顺序存储结构和非顺序存储结构(链式存储结构和散列结构)。

3.数据结构主要学什么内容

学存储结构和逻辑结构。

存储结构是数据在计算机中实际的存在形态,逻辑结构是程序人员需要的数据形态。一、线性表(1)线性表的定义和基本操作(2)线性表的实现1、顺序存储结构2、链式存储结构3、线性表的应用二、栈、队列和数组(一)栈和队列的基本概念(二)栈和队列的顺序存储结构(三)栈和队列的链式存储结构(四)栈和队列的应用(五)特殊矩阵的压缩存储三、树与二叉树(一)树的概念(二)二叉树1、二叉树的定义及其主要特征。

2、二叉树的顺序存储结构和链式存储结构。3、二叉树的遍历。

4、线索二叉树的基本概念和构造。5、二叉排序树。

6、平衡二叉树内部排序算法的应用。

4.关于数据结构的学习

绪论一章没有出现在大纲的考察范围,但是把握了这章有助于对整个课程知识的理解。

因此建议大家还是要把这一章复习一下。这一章中的考点及对其掌握程度如下:数据结构的基本概念 识记数据的逻辑结构和存储结构,对后面的名词要能区分哪些是属于逻辑结构哪些属于物理结构 掌握时间和空间复杂度的概念及度量方法 理解算法设计时的注意事项 了解 线性表一章在线性结构的学习乃至整个数据结构学科的学习中其作用都是非常重要的。

在这一章,第一次系统性地引入链式存储的概念,链式存储概念将是整个数据结构学科的重中之重,无论哪一章都涉及到了这个概念,所以一定搞透彻了。线性表相关的基本概念,如:前驱、后继、表长、空表、首元结点,头结点,头指针等概念 识记线性表的结构特点 识记线性表的顺序存储方式以及两种不同的实现方法:表空间的静态分配和动态分配。

静态链表与顺序表的相似及不同之处 掌握线性表的链式存储方式的实现,几种常用链表的特点和运算:单链表、循环链表,双向链表,双向循环链表 掌握线性表的顺序存储及链式存储情况下,其不同的优缺点比较,即其各自适用的场合 理解单链表中设置头指针、循环链表中设置尾指针而不设置头指针以及索引存储结构的各自好处 理解对于线性表的各种实现方式能够实现指定的操作,尤其是各种线性链表的插入,删除(删除自己,还是删除后继结点),判表空等 掌握 栈,队列和数组都属于线性结构的拓展,栈和队列是操作受限的线性表,数组是数据元素是非原子类型的线性表。大家在复习这一章的时候一定要注意对栈和队列的灵活运用,数组这一张要注意特殊矩阵压缩方面的题目。

栈、队列的定义及其相关数据结构的概念,包括:顺序栈,链栈,共享栈,循环队列,链队等 识记栈与队列插入删除操作的特点,栈和队列的特点 理解递归算法,栈和递归的关系,把递归算法转换为用栈来实现的非递归算法 掌握栈的应用 了解栈和队列各种实现方式的运算 理解循环队列中判队空、队满条件,循环队列中入队与出队算法 掌握判循环队列是空还是满的两种处理方法 理解数组的定义以及如何理解它们是线性表的扩展 识记数组除了初始化和销毁之外只能进行存取和修改操作 识记多维数组中某数组元素的position求解(不管是按行存储和按列存储):一般是给出数组元素的首元素地址和每个元素占用的地址空间并组给出多维数组的维数,然后要求你求出该数组中的某个元素所在的位置 掌握特殊矩阵和稀疏矩阵的定义 了解特殊矩阵的压缩,包括对称矩阵,上(下)三角矩阵,对角矩阵,具有某种特点的稀疏矩阵等 掌握稀疏矩阵的三种不同实现方式:三元组,带辅助行向量的二元组,十字链表存储 理解对稀疏矩阵各种实现方式的转置和相乘运算的操作及复杂性分析 理解 树和二叉树历来都是考试的重难点章节,从这章开始就从对线性结构的研究过渡到对树形结构的研究,这一章学习的好坏直接关系到在数据结构这门考试中能否能得高分。因此这一章大家对每个知识点都要吃透过关。

要注意这章的算法设计类题目。二叉树的概念,二叉树的五种基本形态。

比如可以考这么个题目判断二叉树就是度为2的有序树对否。 理解二叉树的五个性质,尤其是性质3和性质4 掌握二叉树的存储结构:顺序存储和二叉链表存储的各自优缺点及适用场合,二叉树的三叉链表表示方法 掌握二叉树的三种遍历方法:先序,中序和后序。

其划分的依据是视其每个算法中对根结点数据的访问顺序而定。不仅要熟练掌握三种遍历的递归算法,理解其执行的实际步骤,并且应该熟练掌握三种遍历的非递归算法。

熟练掌握在三种遍历算法的基础上改造完成的其它二叉树算法,比如求叶子个数,求二叉树结点总数,求度为1或度为2的结点总数,复制二叉树,建立二叉树,交换左右子树,查找值为n的某个指定结点,删除值为n的某个指定结点,诸如此类等等等等。 熟练掌握线索二叉树:线索化的实质,三种线索化的算法,线索化后二叉树的遍历算法,基本线索二叉树的其它算法问题(如:查找某一类线索二叉树中指定结点的前驱或后继结点就是一类常考题),会计算针对某个二叉树在采用不同的线索化方法后剩余空链域的个数掌握哈夫曼树,也叫最优二叉树。

什么样的编码是哈夫曼编码。一般很少考哈夫曼编码的算法,能够利用算法构造哈夫曼树并求出最小带权路径长度即可。

还有一个树的应用:等价类问题。 掌握树的存储表示方法,树与森林转化为二叉树,树和森林的遍历问题,树的计数,二叉树的相似与等价 掌握回溯法 理解 图这一章是每年考试必考的章节,这一张里面处处都是重点。

图的基本概念:图的定义和特点,无向图,有向图,入度,出度,完全图,生成子图,路径长度,回路,(强)连通图,(强)连通分量等概念。与这些概念相联系的相关计算题也应该掌握 识记掌握图的几种存储形式,尤其是邻接矩阵和邻接表 掌握图的两种遍历算法:深度遍历和广度遍历深度遍历和广度遍历是图的两种基本的遍历算法,这两个算法对图一章的重要性等同于“先序、中序、后序遍历”对于二叉树一章的重要性。

在考查时,图。

5.怎样学习数据结构

很多计算机专业的同学对于大学2年级开设的数据结构课程很是头痛. 看见大家总在谈论数据结构重要性,可使自己学习却总也找不到合适的方法. 下面我和大家分享一下我过去一年多以来学习和应用数据结构方面一些经验. 内容都是来自作者本人的一些经历和体验,希望对于大家学习数据结构有引导作用。

1 什么是数据结构 数据结构从文字上面来看,为数据和结构两部分。这样就很容易联系到数据结构的本质是一种对于数据结构花的知识。

补充一个知识点,数据结构本质和离散数学有很密切的关系。离散数学是处理的是离散(非连续的)的数据,站在数据结构的观点上来看,也可以理解是一种非连续数据的结构。

2 数据结构和程序设计语言 数据结构和程序设计语言本身没有任何联系,唯一有的关系就实用程序语言去描述数据结构。 因为数据结构是一种抽象数据,通过程序设计语言可以将在计算机中进行实现。

今天大学里数据结构课程常用来描述数据结构的语言有C程序设计语言,C++程序设计语言和JAVA程序设计语言. 而对于喜欢其他语言的同学完全可以自己通过学习数据结构后用自己熟悉的程序设计语言去完成程序化的描述.我自己过去很喜欢C#程序设计语言,自己用C#程序设计对于一些数据结构进行了实现. 大家可以通过访问CSTC我的专栏看到两篇C#描述的数据结构 3 数据结构学习的技巧 3.1 学习数据结构的概念后对于抽象数据类型的设计参考C++ STL标准库中容器的设计.这样对于无论是数据结构的学习还有程序设计接口能力上都会有很大的提高. 3.2 对于数据结构课程中很多时候都不太重视的顺序(数组)做存储的数据结构,希望大家还是要多留意这快的知识.对于有些场合需要考虑时间换空间的情况下需要考虑顺序存储结构.3.3数据结构学习一定要自己独立完成代码实现,虽然有时候你理解内容了,但是实现上面还是会愈要很多困难的,解决这些困难会帮助你提高程序设计的能力的。.。

6.如何学习数据结构

数据结构的本质就在于:如何将现实世界中各种各样的数据放入到内存中,并且如何在内存中操作这些数据,如何评价这些存储方案和操作方法。

数据结构难学吗?是难学。为什么难学?一开始上来就讲空间复杂度、时间复杂度,就讲抽象数据,当然难学了。

1、生活、生产等现实世界的数据有各种各样的组成形式。例如一个课程的所有学生的成绩(一组数据),一个班全部学生的所有课程的成绩(一张表)、一个单位的人员结构(树)等等。

2、这些数据都要先加载到内存中,再送到CPU中进行计算。3、内存的最基本单位叫做存储单元,一个字节(不讨论理论中的、个别情况的)。

存储单元相当于一个空盒子,可以放置数据。为了便于管理,盒子会给一个编号,当然存储单元也会有编号,其实就是地址。

理论上地址的方案可以有多种(计算机组成原理和操作系统的任务),不过对于程序员来说,这些都跟我们无关,为了简单起见,我们把存储单元的编号(地址)都编成0、1、2、3、4,。

这样的,于是这些编号或地址的取值范围,我们就称地址空间。这个地址空间,跟一维坐标轴一样,所以是一维线性空间。

4、很明显,数据就是一个个放入到这些存储单元中,就象我们把一个单位的物品放入盒子一样。现在,假设一个盒子只能装入一个单位的物品。

因而,一个存储单元也只能放入一个单位的数据。5、接下来,假设说,我们有很多很多的空盒子(X个)。

有一天,我们要将若干单位物品(N个)放入盒子中,那么我们可以在一个盒子放入一个单位物品。依此类推,我们可以在一个存储单元中放置一个单位的数据。

6、再接下来,我们有两种放置方案:一个挨一个地连续地放置物品;当然,也可以不连续地放置物品。依此类推,在内存当中放置数据,也有两种方案,连续地放置数据,或者不连续地放置数据。

为什么会有不连续的放置方案呢?原因很简单,一个主要的原因是,内存的空间利用率高,碎片少(操作系统的存储管理的知识,且不用理会),删除旧有的数据很容易(这个是数据结构的内容)。7、现在,可以把这两个将数据放入到存储单元的方案叫做物理存储。

对连续物理存储方案来说,事情比较好办,通过编号(索引、下标)就可以找到物品,对于不连续的方案,那么我们就要在一个物品上面标记下一个物品的位置,这个标记就是下一个物品的地址(指针)。当然,在计算机中,指针的记录本身也要占用内存的存储单元,所以我们在c语言中用结构体把数据和指针组织成为一个单位。

通过这个指向关系,我们可以在不连续的放置方案中依次地查找我们所需要的东西(物品或数据)。8、接下来,就象我们经常进行从盒子当中查询物品、取用物品或增加物品等操作一样,我们也要进行从内存当中查询数据、取用(删除)数据或增加数据等操作。

那么,对于不同的物理存储方案来说,其方法是不一样的。这个想一想,我们如何对付真实的物品,我们就如何对付内存中的数据。

这就是数据的物理存储方案的数据操作。9、好了,搞懂这些,字符串之类的知识点就不难了。

10、记住一点,只有两种物理存储结构:连续的和不连续的,因为内存的存储单元的地址(编号)是0、1、2、3。

(一维地址空间、或者线性地址空间)。11、是不是只有物理存储结构(方案)就可以了呢?在第1条中说过,现实当中的数据是有各种各样的结构的。

而在第10条,我们强调了物理放置方案只有2种:连续的和不连续的。12、于是就产生一个问题,如何将现实世界当中的关系各种各样的数据放入到内存之中。

13、解决第12条中的问题,我们可以分两步走,第1步是将现实世界的数据组织成为逻辑结构,第2步再把逻辑结构的数据映射到物理结构中。14、显然,在第1步中,我们抛去数据的其它属性,只留下数据的两个属性就可以了:一个属性是数据的值,另一个属性就是数据之间的关系。

这两个属性就得到一个逻辑结构:graph(图),这就是离散数学中的图论。那么,这就是科学家的事情,他们负责针对具体的问题,将现实世界的数据构造出对应的graph(图)。

15、在第2步中,我们要做的事情,把这个graph映射到物理存储结构中,这就是数据结构要做的事情了。显然,我们可以用数组来存储,也可以用链表来存储,回忆一下最短路径算法的两个做法。

ps.,二维数组、三维数组也是一个连续存储的结构,在c语言debug下,看看地址就知道了。那么,不连续的存储结构,也就是链表,当然有很多的衍生:双向链表、十字链表、等等。

16、显然,不管现实世界中的数据之间的关系如何,我们都可以用graph来描述,只不过是,不同的数据关系有不同的结构而已,比如:树、森林、mesh,等等。17、当然,我们要掌握一些常见的graph的操作方法,最主要就是搜索方法。

而且还要注意,这些方法是分两个层次的,一个物理存储结构这个层次,一个是逻辑存储结构这个层次的。那么现在,深度优先搜索、广度优先搜索是哪个层次呢?18、当然,我们还要掌握一下存储结构的压缩。

19、到了这个时候,我们还要问一下,各种方案的优劣性质如何,也就是空间复杂度和时间复杂度了。

7.谁给我详细讲一下关于数据结构

1.1 数据结构的概念 数据结构是计算机科学与技术专业的专业基础课,是十分重要的核心课程。

所有的计算机系统软件和应用软件都要用到各种类型的数据结构。因此,要想更好地运用计算机来解决实际问题,仅掌握几种计算机程序设计语言是难以应付众多复杂的课题的。

要想有效地使用计算机、充分发挥计算机的性能,还必须学习和掌握好数据结构的有关知识。打好“数据结构”这门课程的扎实基础,对于学习计算机专业的其他课程,如操作系统、编译原理、数据库管理系统、软件工程、人工智能等都是十分有益的。

1.1.1 为什么要学习数据结构 在计算机发展的初期,人们使用计算机的目的主要是处理数值计算问题。当我们使用计算机来解决一个具体问题时,一般需要经过下列几个步骤:首先要从该具体问题抽象出一个适当的数学模型,然后设计或选择一个解此数学模型的算法,最后编出程序进行调试、测试,直至得到最终的解答。

例如,求解梁架结构中应力的数学模型的线性方程组,该方程组可以使用迭代算法来求解。 由于当时所涉及的运算对象是简单的整型、实型或布尔类型数据,所以程序设计者的主要精力是集中于程序设计的技巧上,而无须重视数据结构。

随着计算机应用领域的扩大和软、硬件的发展,非数值计算问题越来越显得重要。据统计,当今处理非数值计算性问题占用了90%以上的机器时间。

这类问题涉及到的数据结构更为复杂,数据元素之间的相互关系一般无法用数学方程式加以描述。因此,解决这类问题的关键不再是数学分析和计算方法,而是要设计出合适的数据结构,才能有效地解决问题。

下面所列举的就是属于这一类的具体问题。 [例1] 学生信息检索系统。

当我们需要查找某个学生的有关情况的时候;或者想查询某个专业或年级的学生的有关情况的时候,只要我们建立了相关的数据结构,按照某种算法编写了相关程序,就可以实现计算机自动检索。由此,可以在学生信息检索系统中建立一张按学号顺序排列的学生信息表和分别按姓名、专业、年级顺序排列的索引表,如图1.1所示。

由这四张表构成的文件便是学生信息检索的数学模型,计算机的主要操作便是按照某个特定要求(如给定姓名)对学生信息文件进行查询。 诸如此类的还有电话自动查号系统、考试查分系统、仓库库存管理系统等。

在这类文档管理的数学模型中,计算机处理的对象之间通常存在着的是一种简单的线性关系,这类数学模型可称为线性的数据结构。 [例2] 八皇后问题。

在八皇后问题中,处理过程不是根据某种确定的计算法则,而是利用试探和回溯的探索技术求解。为了求得合理布局,在计算机中要存储布局的当前状态。

从最初的布局状态开始,一步步地进行试探,每试探一步形成一个新的状态,整个试探过程形成了一棵隐含的状态树。如图1.2所示(为了描述方便,将八皇后问题简化为四皇后问题)。

回溯法求解过程实质上就是一个遍历状态树的过程。在这个问题中所出现的树也是一种数据结构,它可以应用在许多非数值计算的问题中。

[例3] 教学计划编排问题。一个教学计划包含许多课程,在教学计划包含的许多课程之间,有些必须按规定的先后次序进行,有些则没有次序要求。

即有些课程之间有先修和后续的关系,有些课程可以任意安排次序。这种各个课程之间的次序关系可用一个称作图的数据结构来表示,如图1.3所示。

有向图中的每个顶点表示一门课程,如果从顶点vi到vj之间存在有向边,则表示课程i必须先于课程j进行。 由以上三个例子可见,描述这类非数值计算问题的数学模型不再是数学方程,而是诸如表、树、图之类的数据结构。

因此,可以说数据结构课程主要是研究非数值计算的程序设计问题中所出现的计算机操作对象以及它们之间的关系和操作的学科。 学习数据结构的目的是为了了解计算机处理对象的特性,将实际问题中所涉及的处理对象在计算机中表示出来并对它们进行处理。

与此同时,通过算法训练来提高学生的思维能力,通过程序设计的技能训练来促进学生的综合应用能力和专业素质的提高。 1.1.2 有关概念和术语 在系统地学习数据结构知识之前,先对一些基本概念和术语赋予确切的含义。

数据(Data)是信息的载体,它能够被计算机识别、存储和加工处理。它是计算机程序加工的原料,应用程序处理各种各样的数据。

计算机科学中,所谓数据就是计算机加工处理的对象,它可以是数值数据,也可以是非数值数据。数值数据是一些整数、实数或复数,主要用于工程计算、科学计算和商务处理等;非数值数据包括字符、文字、图形、图像、语音等。

数据元素(Data Element)是数据的基本单位。在不同的条件下,数据元素又可称为元素、结点、顶点、记录等。

例如,学生信息检索系统中学生信息表中的一个记录、八皇后问题中状态树的一个状态、教学计划编排问题中的一个顶点等,都被称为一个数据元素。 有时,一个数据元素可由若干个数据项(Data Item)组成,例如,学籍管理系统中学生信息表的每一个数据元素就是一个学生记录。

它包括学生的学号、姓名、性别、籍贯、出生年月、成绩等数据项。这些数据项可以分为两种。

8.数据结构主要学什么内容

一、线性表

(一)线性表的定义和基本操作

(二) 线性表的实现

1. 顺序存储结构

2. 链式存储结构

3. 线性表的应用

二、栈、队列和数组

(一)栈和队列的基本概念

(二)栈和队列的顺序存储结构

(三)栈和队列的链式存储结构

(四)栈和队列的应用

(五)特殊矩阵的压缩存储

三、树与二叉树

(一)树的概念

(二)二叉树

1. 二叉树的定义及其主要特征

2. 二叉树的顺序存储结构和链式存储结构

3. 二叉树的遍历

4. 线索二叉树的基本概念和构造

5. 二叉排序树

6. 平衡二叉树

(三)树、森林

1. 书的存储结构

2. 森林与二叉树的转换

3. 树和森林的遍历

(四)树的应用

1. 等价类问题

2. 哈夫曼(Huffman)树和哈夫曼编码

四、图

(一) 图的概念

(二) 图的存储及基本操作

1. 邻接矩阵法

2. 邻接表法

(三) 图的遍历

1. 深度优先搜索

2. 广度优先搜索

(四) 图的基本应用及其复杂度分析

1. 最小(代价)生成树

2. 最短路径

3. 拓扑排序

4. 关键路径

五、查找

(一) 查找的基本概念

(二) 顺序查找法

(三) 折半查找法

(四) B-树

(五) 散列(Hash)表及其查找

(六) 查找算法的分析及应用

六、内部排序

(一) 排序的基本概念

(二) 插入排序

1. 直接插入排序

2. 折半插入排序

(三) 气泡排序(bubble sort)

(四) 简单选择排序

(五) 希尔排序(shell sort)

(六) 快速排序

(七) 堆排序

(八) 二路归并排序(merge sort)

(九) 基数排序

(十) 各种内部排序算法的比较

(十一) 内部排序算法的应用

9.数据结构的基础知识

第一章 什么是数据结构

1.1 基本概念和术语

1.2 数据的逻辑结构和物理结构

1.1 基本概念和术语

1.数据(data):

是对客观事物的符号的表示,是所有能输入到计算机中并被计算机程序处理的符号的总称。

2.数据元素(data element):

是数据的基本单位,在计算机程序中通常作为一个整体来处理。一个数据元素由多个 数据项(data item)组成,数据 项是数据不可分割的最小单位。

3.数据结构(data structure):

是相互之间存在一种或多种特定关系的数据元素的集合。数据结构是一个二元组,记为:

data_structure=(D,S).其中D为数据元素的集合,S是D上关系的集合。

数据元素相互之间的关系称为结构(structure)。根据数据元素之间关系的不同特性,通常由下列四类基本结构:

(1)集合:数据元素间的关系是同属一个集合。(图1)

(2)线性结构:数据元素间存在一对一的关系。(图2)

(3)树形结构:结构中的元素间的关系是一对多的关系。(图3)

(4)图(网)状结构:结构中的元素间的关系是多对多的关系。(图4)

1.2 数据的逻辑结构和物理结构

逻辑结构:数据元素之间存在的关系(逻辑关系)叫数据的逻辑结构。

物理结构:数据结构在计算机中的表示(映象)叫数据的物理结构。

一种逻辑结构可映象成不同的存储结构:顺序存储结构和非顺序存储结构(链式存储结构和散列结构)。

erp系统是什么意思啊

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注