当前位置 : 主页 > 编程语言 > c语言 >

数据结构三要素

来源:互联网 收集:自由互联 发布时间:2023-09-07
1.基本概念 1.1数据 数据是信息的载体,是任何能够输入计算机并能够被计算机识别和处理的符号集合。 1.2数据元素 数据元素是数据的基本单位,通过作为一个整体进行考虑和处理,比

1.基本概念

1.1数据

数据是信息的载体,是任何能够输入计算机并能够被计算机识别和处理的符号集合。

1.2数据元素

数据元素是数据的基本单位,通过作为一个整体进行考虑和处理,比如在线性表中的元素就是数据元素。数据元素可由若干数据项组成,数据项是组成数据元素的不可分割的最小单位。

学号

姓名

性别

xxxx

王xx

xxxx

……

……

在这个学生表中,第一条学生记录就是一个数据元素,它由学号、姓名、性别三个数据项组成。

1.3数据对象

数据对象是具有相同性质的数据元素的集合,是数据的一个子集。例如整数数据对象是集合N,上表的学生表也是一个数据对象。

1.4数据类型

数据类型是一个值的集合和定义在此集合上的一组操作的总称。有原子类型,结构类型,抽象数据类型。

1.5数据结构

数据结构是相互之间存在一种或多种特定关系的数据元素的集合。在任何问题中,数据元素都不是孤立存在的,它们之间存在某种关系,这种数据元素之间的关系称为结构。

2.数据结构三要素

2.1逻辑结构

逻辑结构是指数据元素之间的逻辑关系,即从逻辑关系上描述数据。它与数据在计算机中的实际存储结构无关,是独立于计算机的。逻辑结构分为线性结构和非线性结构。

2.1.1线性结构

线性结构包括:1.一般线性表;2.受限线性表:栈和队列,以及串;3.线性表推广:数组。

2.1.2非线性结构

非线性结构包括:1.集合;2.树形结构:一般树,二叉树;3.图状结构:有向图和无向图。

2.1.3数据元素之间的关系

集合:集合中的元素除了同属于一个集合外,别无其它关系;

线性结构:结构中的元素只存在一对一的关系;

树形结构:结构中的元素只存在一对多的关系;

图状结构:结构中的元素只存在多对多的关系。

2.2存储结构

2.2.1顺序存储

在逻辑上相邻的元素在物理位置上也相邻。优点是可以实现随机存取,缺点是只能使用相邻的一整块存储单元,可能产生外部碎片。

2.2.2链式存储

不要求在逻辑上相邻的元素在物理位置上也相邻,而是通过元素存储地址的指针来表示元素之间的逻辑关系。优点是不会出现碎片现象,能充分利用存储单元,缺点是每个元素都需要额外的指针空间,且只能实现顺序存储。

2.2.3索引存储

在存储元素的同时,还建立附加的索引表。索引表中的每项称为索引项,索引项一般形式是(关键字,地址)。优点是检索速度快,缺点是附加的索引表额外占用存储空间,同时对索引表增删操作也需要额外的时间开销。

2.2.4散列存储

根据元素的关键字直接计算出该元素的存储地址,又称哈希存储。优点是检索、增加和删除节点的操作都很快,缺点是若散列函数不好,则可能出现存储单元冲突。

2.3数据运算

数据运算包括运算的定义和实现。运算的定义是针对逻辑结构的,指出运算的功能;运算的实现是针对存储结构的,指出运算的具体操作步骤。

3.算法

3.1算法的基本概念

算法是对特定问题求解步骤的描述,它是指令的有限序列,其中的每条指令表示一个或多个操作。

3.2算法的5个重要特性(必要性)

有穷性、确定性、可行性、输入和输出。

3.3算法效率的度量

算法效率的度量是通过时间复杂度和空间复杂读来描述的。

1.时间复杂度

算法中所有语句的频度之和记为T(n),它是算法问题规模n的函数,而时间复杂度主要分析T(n)的数量级,因此通常采用算法中基本运算的频度f(n)来分析算法的时间复杂度,因此T(n)=O(f(n)),O表示数量级,且满足正常数C和n1,使得当n>=n1时,都满足0<=T(n)<=Cf(n)

2.空间复杂度

算法的空间复杂度S(n)定义为该算法所耗费的存储空间,它是问题规模n的函数,记为S(n)=O(g(n))。算法原地工作是指算法所需的辅助空间为常量,即O(1)。关于时间复杂度和空间复杂度的理解,建议找一些例题一起消化。


【本文由:阜宁网页设计 http://www.1234xp.com/funing.html 网络转载请说明出处】
上一篇:C++类和对象_封装part1
下一篇:没有了
网友评论