首页 > 编程知识 正文

数据结构和算法,研究数据结构就是研究

时间:2023-05-06 10:02:08 阅读:33597 作者:1987

原始标题:数据结构(计算机存储、组织数据方法) ) ) )。

数据结构是计算机存储和组织数据的方法。 数据结构是相互具有一个或多个特定关系的数据元素的集合。

数据结构(data structure )是具有结构特性的数据元素的集合,研究数据的逻辑结构和数据的物理结构及其相互关系,为结构定义适当的运算,设计适当的算法,经过这些运算得到的新结构保持原来的结构类型简单来说,数据结构是相互具有一个或多个特定关系的数据元素的集合,是具有“结构”的数据元素的集合。 “结构”是指数据元素之间存在的关系,可分为逻辑结构和存储结构。

的逻辑结构和物理结构是数据结构的两个密切相关的方面同一逻辑结构可以对应不同的存储结构算法的设计取决于数据的逻辑结构,算法的实现取决于指定的存储结构。

数据结构的研究内容是构建复杂软件系统的基础,其核心技术是分解和抽象。 通过分解可以分为数据三个层次的抽象,舍弃数据要素的具体内容,得到逻辑结构。 同样,通过分解将处理要求分割为各种功能,通过抽象舍弃细节,可以得到运算的定义。 这两个方面结合起来,可以将问题转换为数据结构。 这是一个从具体问题到抽象问题,即数据结构的过程。 然后增加对实施细节的考虑,进一步得到存储结构和实施运算,完成设计任务。 这是从抽象=数据结构到具体化=具体化的过程。

研究对象

数据逻辑结构

指反映数据元素之间逻辑关系的数据结构。 其中逻辑关系是指数据元素之间的前后关系,而与计算机中的存储位置无关。 逻辑结构如下。

1 .集合)数据结构中的要素之间除了“属于同一集合”的相互关系以外没有其他关系。

2 .线性结构:数据结构中的因素是一对一的相互关系;

3 .树形结构:数据结构中的要素呈一对多的相互关系;

4 .图形结构:数据结构中的要素呈多对多的相互关系。

数据的物理结构

指数据逻辑结构存储在计算机存储空间中的格式。

的物理结构是数据结构在计算机上的表示(也称为图像),包括与数据元素的机内表示关系的机内表示。 由于具体实现方法包括顺序、链接、索引和散列等多种方法,因此一个数据结构可以表示为一个或多个存储结构。

用二进制比特)的比特串来表现数据要素的机内表现(映射方法)数据要素。 该位串通常称为节点。 如果数据元素具有多个数据项,则与位串中的各个数据项相对应的部分位串称为数据字段(data field )。 因此,节点是数据元素的飞机内表示(或飞机内图像)。

关系的机内表示(映射方法)数据元素之间关系的机内表示可以分为顺序图像和非顺序图像,通常有顺序存储结构和链式存储结构两种存储结构。 顺序图像根据元素在内存中的相对位置表示数据元素之间的逻辑关系。 非顺序图像使用指示元素存储位置的指针(pointer )来表示数据元素之间的逻辑关系。

数据存储结构

将数据的逻辑结构存储在计算机存储空间中的形式称为数据的物理结构(也称为存储结构)。 一般,一个数据结构的逻辑结构可以根据需要表示为多个存储结构,一般的存储结构包括序列存储、链存储、索引存储、yydct等。

数据顺序存储结构的特点是数据元素之间的逻辑关系(取决于内存中元素的相对位置)。非顺序存储的特点是数据元素之间的逻辑关系(用指针指示元素的存储位置)。

分类

数据结构有很多种,但通常根据数据的逻辑结构很容易分类,包括线性结构和非线性结构两种。

线性结构

简而言之,线性结构是指表中的各节点具有线性关系。 从数据结构的语言编写时,线性结构应该包括以下内容:

1、线性结构为非空集。

2、有线性结构,只有一个起始节点和一个终止节点。

3、线性结构的所有节点最多只有一个直接前向节点和一个直接后续节点。

线性表是典型的线性结构,堆栈、队列、字符串等也属于线性结构。

非线性结构

简而言之,非线性结构是指表中的各节点之间具有多个对应关系。 从数据结构的语言编写时,非线性结构应该包括以下内容:

1、非线性结构为非空集。

2 .非线性结构的一个节点中可能有多个直接前向节点和多个直接后续节点。

在实际应用中,数组、广义表、树结构和图结构等数据结构都属于非线性结构。

常用数据结构

在计算机科学发展的过程中,数据结构也得到了发展。 编程中常用的数据结构如下。

数组(阵列)。

数组是由具有相同类型的多个变量组织而成的集合数据类型。 数组可以说是最基本的数据结构,用各种编程语言支持。 数组可以分解为多个数组元素,根据数据元素的类型可以分为整数数组、字符数组、浮点数组、指针数组和结构数组等。 数组还具有一维、二维、asjdwt等表示形式。

堆栈

堆栈是一个特殊的线性表,只能在一个表中的一个

固定端进行数据结点的插入和删除操作。栈按照后进先出的原则来存储数据,也就是说,先插入的数据将被压入栈底,最后插入的数据在栈顶,读出数据时,从栈顶开始逐个读出。栈在汇编语言程序中,经常用于重要数据的现场保护。栈中没有数据时,称为空栈。

队列(Queue)

队列和栈类似,也是一种特殊的线性表。和栈不同的是,队列只允许在表的一端进行插入操作,而在另一端进行删除操作。一般来说,进行插入操作的一端称为队尾,进行删除操作的一端称为队头。队列中没有元素时,称为空队列。

链表( Linked List)

链表是一种数据元素按照链式存储结构进行存储的数据结构,这种存储结构具有在物理上存在非连续的特点。链表由一系列数据结点构成,每个数据结点包括数据域和指针域两部分。其中,指针域保存了数据结构中下一个元素存放的地址。链表结构中数据元素的逻辑顺序是通过链表中的指针链接次序来实现的。

树( Tree)

树是典型的非线性结构,它是包括,2个结点的有穷集合K。在树结构中,有且仅有一个根结点,该结点没有前驱结点。在树结构中的其他结点都有且仅有一个前驱结点,而且可以有两个后继结点,m≥0。

图(Graph)

图是另一种非线性数据结构。在图结构中,数据结点一般称为顶点,而边是顶点的有序偶对。如果两个顶点之间存在一条边,那么就表示这两个顶点具有相邻关系。

堆(Heap)

堆是一种特殊的树形数据结构,一般讨论的堆都是二叉堆。堆的特点是根结点的值是所有结点中最小的或者最大的,并且根结点的两个子树也是一个堆结构。

散列表(Hash)

散列表源自于散列函数(Hash function),其思想是如果在结构中存在关键字和T相等的记录,那么必定在F(T)的存储位置可以找到该记录,这样就可以不用进行比较操作而直接取得所查记录。

常用算法

数据结构研究的内容:就是如何按一定的逻辑结构,把数据组织起来,并选择适当的存储表示方法把逻辑结构组织好的数据存储到计算机的存储器里。算法研究的目的是为了更有效的处理数据,提高数据运算效率。数据的运算是定义在数据的逻辑结构上,但运算的具体实现要在存储结构上进行。一般有以下几种常用运算:

(1)检索。检索就是在数据结构里查找满足一定条件的节点。一般是给定一个某字段的值,找具有该字段值的节点。

(2)插入。往数据结构中增加新的节点。

(3)删除。把指定的结点从数据结构中去掉。

(4)更新。改变指定节点的一个或多个字段的值。

(5)排序。把节点按某种指定的顺序重新排列。例如递增或递减。返回搜狐,查看更多

责任编辑:

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。