环球网校是美国纳斯达克上市企业欢聚时代(NASDAQ:YY)旗下品牌 | 住房和城乡建设部 建筑人才培训合作单位
您现在的位置在: > 医药考试 > 执业药师 > 考试动态 >

数据结构导论之逻辑结构解析:线性树形图形的分类与区别

2026-10-24 来源:网络 作者:佚名

数据逻辑结构

数据的逻辑结构这个东西, 它指的是数据元素和数据元素之间所存在的那些逻辑关系, 这个逻辑结构是由数据元素的集合, 以及定义在这个数据元素的集合之上的关系共同组成的, 数据的逻辑结构和数据的存储方式是没有任何关联的, 它是独立于计算机的存在的, 它是从具体的一些问题之中抽象出来的一种数学模型方面的事宜, 数据的逻辑结构有两个构成要素, 这两个要素分别是什么呢, 它们一个是数据元素的集合, 另一个是关系的集合, 一般来说, 关于逻辑结构的包含范围包括以下几种情况如下。

#

1.集合, 这是数据结构中的一种情况, 在这里面, 元素和元素之间, 除了同属于一个集合这样的相互关系之外, 没有别的任何其他的相互关系存在了。 #

2.在线性结构这个数据结构范畴里面, 数据元素们彼此之间存在着一种相互对应的关系, 这种一对一的关系使得元素间的关联清晰明了。

#

3.树形结构, 这是数据结构里面的一个概念, 它指的是在这个数据结构里面, 各个元素之间存在着一种一对多的相互关系这种说法。 #

4.数据结构的元素存在多对多的相互关系。 #

数据的逻辑结构, 它是被分为以下几种不同的类型。 #

数据的存储结构

#

人们把那个数据逻辑结构在计算机里面, 具体是怎么去存储, 以及是怎么去实现的那回事儿, 叫作数据的存储结构数据结构导论物业经理人,当然了, 这个东西也通常还被人称作是物理结构。而且你需要注意到, 数据的存储结构这个东西它是依赖于计算机本身的。 #

通常在根据实际需要的时候, 这样一种数据逻辑结构是可以被表示为多种存储形式, 而其中大家一般都比较常用的类型, 包括了有顺序形式的存储、还有链式的保存方式、以及那些属于索引类别的存放法和哈希这种存法等等。 #

数据的顺序存储结构有这样的一个特点, 就是靠的是元素在存储器里面的相对位置, 来表示数据元素彼此之间的逻辑关系。非顺序存储结构呢又不同了, 它的特征是这样的, 就是靠着那些用来指示元素存储地址的指针, 以此来表示数据元素之间的逻辑关系。

#

分类播报

#

数据结构这种东西, 它的种类那是相当多, 一般, 我们是按照数据的逻辑结构来给它做一个简单的分类工作, 这个工作做下来, 你会发现, 主要就包括两个大类, 一个是线性结构, 另一个, 就是非线性结构。 #

简单来说, 在表中各个结点之间存在线性关系。如果利用数据结构的语言来进行描述, 该线性结构应该涉及以下这些内容。

#

1.线性结构是非空集

#

2.所谓的线性结构, 它的特点就是具有一个开始结点以及终端结点, 并且这两个结点是明确无误的, 不多不少。

#

3.所谓的线性结构, 就是指在这种情况之下所有的结点都是满足这样的条件的, 即每一个结点都最多只会有一个是它直接前驱节点的个体存在并且同时也最多只会有一个是它直接后继节点的个体存在。 #

所谓的线性表, 它就是那种典型的、大家常说的线性结构的东西, 除此之外, 你看那个叫栈的, 还有叫做队列的数据结构, 再加上那个串, 这些个东西也都属于线性结构的范畴里。

#

说白一点, 非线性结构就是指在一张表里面, 每一个数据节点和别的节点之间存在着好几个对应上的关系。要是用学数据结构的那些专业话语来解释的话, 这种叫非线性结构的东西啊, 得包含下面这么几条意思: #

1.这个非线性结构其实它并不是一个空的集合。 #

2.在一个非线性结构之中, 其中的某一个结点可能会有多个直接的前驱结点, 同时也可能会有多个直接的后继结点。

#

在实际应用的过程当中, 大家会注意到, 数组、广义表、树结构, 还有图结构等等这些个数据结构, 它们其实都不算是线性结构, 而是属于那种非线性的数据结构类型。

#

常见数据结构播报

#

咱们在计算机科学的发展过程中, 数据结构也是跟着一起发展的, 在程序设计里面常用的数据结构包括了下面那几个东西。 #

数组是一种聚合数据类型, 这种类型把许多具有相同类型的变量, 以一种有序的、集合的方式组织在一起。因为它是最为基础的数据结构形式, 所以在当下的各种编程语言里面, 都可以找到它的对应版本。 #

一个完整的数组, 可以被拆分成多个独立的数组元素, 如果根据数据元素所属的具体类型来划分的话, 这些数组能够被归类为整型数组、字符型数组以及浮点型数组等类别。另外, 指针数组和结构数组也属于这一分类范围。在表现形式这块内容上, 数组还可以具有一维的形式、二维的形式或者是多维的形式等。 #

堆栈是一种特殊的线性表, 有时候也被叫做栈。它只允许在表的那个固定的一端去进行数据节点的插入和删除的动作。关于数据的存放, 栈是遵循先进后出以及后进先出的这些原则的, 这就意味着, 前面先被插入的数据会进入栈底的位置, 而那最后才被插入的数据则会待在栈顶的地方。 #

等需要读出数据的时候呢, 得从栈顶这一块开始然后一个一个地去读取。在处理汇编语言程序的过程中, 栈这个东西经常被用来保护好关键数据的那些现场信息。如果说栈里头没有任何数据的话, 那么这种情况就被称为空栈。

#

队列和栈一样, 都是一种特殊的线性表, 可是呢, 它跟栈不太一样的地方在于, 它是按照先进先出的这个原则来存储数据的, 然后在实际的操作方面, 只能够允许在表的一头进行插入那个操作, 而在另外一头进行删除那个操作, 通常的话, 我们会把那个用来进行插入操作的那一端叫做队尾, 而另一头用来进行删除操作的那一端就叫做队头, 如果没有元素待在队列里面的时候, 这种情况就被称为是空队列。 #

链表( List) #

链表是一种数据结构, 这种数据结构的特点是使用链式存储结构来对数据元素进行存储, 并且在物理层面上呈现出不连续的特征, 它是由一系列的多个数据结点所构成的, 每一个数据结点都包含有两个部分, 一部分是数据域, 另一部分是指针域, 而指针域里面的作用是保存了在这个数据结构当中, 下一个元素所要存放的地址信息数据结构导论,至于说链表结构中各个数据元素的逻辑先后顺序, 则是通过利用链表内部的那些指针链接次序给实现出来的。 #

树是一种典型的非线性结构, 它是由 n (大于0)个有限结点组成的一个具有层次关系的集合, 在树结构中, 有且仅有一个根结点, 这个根结点是没有前驱结点的, 在树结构中其他的结点都有且仅有一个前驱结点。

#

图属于另外一种非线性数据结构类型的集合, 这种数据结构会包含一个由有限多个元素组成的集合作为结点集, 同时还会包含一个由无序对或者有序对组成的集合来作为边集合, 其中无序对用来对应无向图的情况, 而有序对则用来对应于有向图的情形, 如果在两个结点之间确实存在了一条连接它们的边, 那么就会说明这两个结点之间具备相邻关系这一种状态。 #

堆是一种特殊的树形数据结构, 而大家通常所讨论的堆, 指的都是二叉堆。这种结构的特点在于, 根结点的值, 在所有结点之中要么是最小的, 要么是最大的, 同时, 根结点所拥有的那两个子树, 本身也是具备堆的特性, 也就是它们也构成了一个堆结构。

#

散列表这个东西, 它是从散列函数那边来的。它的道理是这样的。如果在这个结构里面, 有记录的关键字是和T相等的。那么这个记录, 肯定就在F(T)那个存储位置能找到。这样一来, 就不用进行比较操作了。直接就能取得那个要查的记录。 #

常用算法播报

#

所谓数据操作, 它指的是针对数据结构里面所包含的那些数据元素, 去进行一些运算也好处理也好这些动作, 并且, 这一类关于数据操作的具体的规定和定义, 它们是被放在数据的逻辑结构这个层面之上的, 所以就会存在这样的情况, 就是每一种被定义出来的逻辑结构类型, 都对应着一定数量的、专门用来对它内部的数据元素进行处理以便能够达到某种特定功能目的的这类操作手段, 而像常见的插入新内容啊、删除掉不需要的部分啊以及更新现有信息等等, 都属于这样的例子, 同时, 我们需要知道的是, 所有这些想要真正实施起来的数据操作, 其具体完成的过程是建立在数据存储结构的基础上的, 也就是依赖关系存在的, 至于现在通常可以被列出来的常用运算方式, 一般包括如下几种情况。

#

责编:admin 返回顶部  打印

关于我们 ┊ 联系我们 ┊ 友情链接 ┊ 网站声明 ┊ 网站地图 ┊ 广告服务 ┊ ┊ 帮助中心