相关文章推荐
冷静的哑铃  ·  海盐- 肯特薯片·  1 周前    · 
腼腆的皮带  ·  农药-农药残留-SGS检测·  3 周前    · 
想发财的遥控器  ·  見習工程師計劃·  1 月前    · 
数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的 数据元素 的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术有关。
数据结构(data structure)是带有结构特性的数据元素的集合,它研究的是数据的 逻辑结构 和数据的物理结构以及它们之间的相互关系,并对这种结构定义相适应的运算,设计出相应的算法,并确保经过这些运算以后所得到的新结构仍保持原来的 结构类型 。简而言之,数据结构是相互之间存在一种或多种特定关系的数据元素的集合,即带“结构”的数据元素的集合。“结构”就是指数据元素之间存在的关系,分为逻辑结构和存储结构。
数据结构的研究内容是构造复杂 软件系统 的基础,它的 核心技术 是分解与抽象。通过分解可以划分出数据的3个层次;再通过抽象,舍弃数据元素的具体内容,就得到逻辑结构。类似地,通过分解将处理要求划分成各种功能,再通过抽象舍弃实现细节,就得到运算的定义。上述两个方面的结合可以将问题变换为数据结构。这是一个从具体(即具体问题)到抽象(即数据结构)的过程。然后,通过增加对实现细节的考虑进一步得到存储结构和实现运算,从而完成设计任务。这是一个从抽象(即数据结构)到具体(即具体实现)的过程。
指反映数据元素之间的逻辑关系的数据结构,其中的 逻辑关系 是指 数据元素 之间的前后间关系,而与他们在计算机中的存储位置无关。逻辑结构包括:
3. 树形结构 :数据结构中的元素存在 一对多 的相互关系;
4. 图形结构 :数据结构中的元素存在 多对多 的相互关系。

数据结构 数据物理结构

数据的 物理结构 是数据结构在计算机中的表示(又称映像),它包括数据元素的机内表示和关系的机内表示。由于具体实现的方法有顺序、链接、索引、散列等多种,所以,一种数据结构可表示成一种或多种存储结构。
数据元素的机内表示(映像方法): 用 二进制位 (bit)的位串表示数据元素。通常称这种位串为节点( node )。当数据元素有若干个 数据项 组成时,位串中与各个数据项对应的子位串称为 数据域 (data field)。因此,节点是数据元素的机内表示(或机内映像)。
关系的机内表示(映像方法):数据元素之间的关系的机内表示可以分为顺序映像和非顺序映像,常用两种存储结构: 顺序存储结构 链式存储结构 。顺序映像借助元素在 存储器 中的 相对位置 来表示数据元素之间的逻辑关系。非顺序映像借助 指示元素 存储位置的指针(pointer)来表示数据元素之间的逻辑关系。

数据结构 数据存储结构

数据的逻辑结构在计算机 存储空间 中的存放形式称为数据的物理结构(也称为存储结构)。一般来说,一种数据结构的逻辑结构根据需要可以表示成多种存储结构,常用的存储结构有 顺序存储 链式存储 索引存储 哈希存储 等。
数据的顺序存储结构的特点是:借助元素在存储器中的相对位置来表示数据元素之间的逻辑关系;非顺序存储的特点是:借助指示元素存储地址的指针表示数据元素之间的逻辑关系。
计算机科学 的发展过程中,数据结构也随之发展。程序设计中常用的数据结构包括如下几个。
数组 (Array)
数组 是一种聚合 数据类型 ,它是将具有相同类型的若干变量有序地组织在一起的集合。数组可以说是最基本的数据结构,在各种 编程语言 中都有对应。一个数组可以分解为多个 数组元素 ,按照 数据元素 的类型,数组可以分为 整型 数组、字符型数组、浮点型数组、 指针数组 和结构数组等。数组还可以有一维、二维以及多维等表现形式。
栈是一种特殊的 线性表 ,它只能在一个表的一个固定端进行数据结点的插入和删除操作。栈按照先进后出或 后进先出 的原则来 存储数据 ,也就是说,先插入的数据将被压入栈底,最后插入的数据在 栈顶 ,读出数据时,从栈顶开始逐个读出。栈在 汇编语言程序 中,经常用于重要数据的 现场保护 。栈中没有数据时,称为空栈。
链表 ( Linked List)
链表 是一种数据元素按照 链式存储结构 进行存储的数据结构,这种存储结构具有在物理上存在非连续的特点。链表由一系列数据结点构成,每个数据结点包括 数据域 和指针域两部分。其中,指针域保存了数据结构中下一个元素存放的地址。链表结构中数据元素的 逻辑顺序 是通过链表中的指针链接次序来实现的。
树是典型的 非线性结构 ,它是包括,2个结点的有穷集合K。在 树结构 中,有且仅有一个 根结点 ,该结点没有前驱结点。在树结构中的其他结点都有且仅有一个前驱结点,而且可以有两个后继结点,m≥0。
堆是一种特殊的 树形数据结构 ,一般讨论的堆都是 二叉堆 。堆的特点是根结点的值是所有结点中最小的或者最大的,并且根结点的两个 子树 也是一个堆结构。
散列表源自于 散列函数 (Hash function),其思想是如果在结构中存在关键字和T相等的记录,那么必定在F(T)的存储位置可以找到该记录,这样就可以不用进行比较操作而直接取得所查记录。
数据结构研究的内容:就是如何按一定的 逻辑结构 ,把 数据组织 起来,并选择适当的存储表示方法把逻辑结构组织好的 数据存储 到计算机的存储器里。算法研究的目的是为了更有效的 处理数据 ,提高数据 运算效率 。数据的运算是定义在数据的逻辑结构上,但运算的具体实现要在 存储结构 上进行。一般有以下几种常用运算: