【数据结构1-基本概念和术语】

这里写自定义目录标题

0.数据,数据元素,数据项,数据对项,数据结构,逻辑结构,存储结构

以下是一个简单的例子来说明这些概念:

假设有一个学生信息管理系统。

  • 数据:指所有学生的信息,包括姓名、年龄、学号、成绩等。
  • 数据元素:每个学生的信息就是一个数据元素,例如某个具体学生的姓名、年龄等。
  • 数据项:学生信息中的具体字段,如姓名就是一个数据项。
  • 数据对象:可以是一个学生,也可以是一个班级的学生集合。
  • 数据结构:指组织和存储学生信息的方式,例如使用链表、数组或树等。
  • 逻辑结构:描述学生之间的关系,如线性结构或树形结构。
  • 存储结构:决定了学生信息在计算机内存中的实际存储方式。

在这个例子中,数据、数据元素、数据项、数据对象是对不同层次信息的描述,而数据结构、逻辑结构和存储结构则关注如何组织和管理这些信息。选择合适的数据结构和存储结构可以提高数据处理的效率和性能。

1.结构

1.1逻辑结构

1.2存储结构

数据对象在计算机中的存储表示称为数据的存储结构,也称为物理结构。把数据对象存储到计算机时,通常要求既要存储各数据元素的数据,又要存储数据元素之间的逻辑关系,数据元素在计算机内用一个结点来表示

1.2.1 顺序结构

顺序存储结构是借助元素在存储器中的相对位置来表示数据元素之间的逻辑关系,通常借助

程序设计语言的数组类型来描述

1.2.2链式结构

顺序存储结构要求所有的元素依次存放在一片连续的存储空间中,而链式存储结构,无需占

用一整块存储空间。但为了表示结点之间的关系,需要给每个结点附加指针字段,用千存放后继

元素的存储地址。所以链式存储结构通常借助于程序设计语言的指针类型来描述。

1.3数据结构

1.3.1基本数据类型

(略)

1.3.2抽象数据类型

抽象数据类型(AbstractData Type, ADT) 一般指由用户定义的、表示应用问题的数学模型,以及定义在这个模型上的一组操作的总称,具体包括三部分:数据对象、数据对象上关系的集合以及对数据对象的基本操作的集合。

运用抽象数据类型描述数据结构,有助千在设计一个软件系统时,不必首先考虑其中包含的数据对象,以及操作在不同处理器中的表示和实现细节,而是在构成软件系统的每个相对独立的模块上定义一组数据和相应的操作,把这些数据的表示和操作细节留在模块内部解决,在更高的层次上进行软件的分析和设计,从而提高软件的整体性能和利用率。

1.3.2.1一个简单的抽象数据类型定义及实现(复数)


1.4 算法和算法分析

(略去):后期熟练了自行理解

  • 算法 (Algorithm) 是为了解决某类问题而规定的一个有限长的操作序列。
  • 重点是时间复杂度和空间复杂度的理解和计算
  • 所谓的算法分析并非精确统计算法实际执行所需时间,而是针对算法中语句的执行 次数做出估计,从中得到算法执行时间的信息
    重点理解
  • 对算法时间复杂度的度量,人们更关心的是最坏情况下和平均情况下的时间复杂度。然而在
    很多情况下,算法的平均时间复杂度难千确定。因此,通常只讨论算法在最坏情况下的时间复杂
    度,即分析在最坏情况下,算法执行时间的上界。在本书后面内容中讨论的时间复杂度,除特别
    指明外,均指最坏情况下的时间复杂度。
相关推荐
Miracle_86.9 分钟前
【数据结构】单链表:数据结构中的舞者,穿梭于理论与实践的舞池
c语言·数据结构·链表·学习方法
OYYHXPJR2 小时前
算法重新刷题
数据结构·算法
摸鱼的快乐你不懂3 小时前
金银铜牌排序【二维数组借用Arrays.sort方法进行排序】
数据结构
依晴无旧3 小时前
数组算法(二):交替子数组计数
数据结构·算法
振华首席娱记4 小时前
代码随想录——划分字母区间(Leetcode763)
java·数据结构·算法·leetcode·职场和发展
阳光男孩014 小时前
力扣3026.最大好子数组和
数据结构·算法·leetcode
悄悄敲敲敲4 小时前
栈的实现详解
c语言·开发语言·数据结构·c++·算法·链表·线性回归
danaaaa5 小时前
算法力扣刷题总结篇 ——【四】
数据结构·c++·算法·leetcode·职场和发展
NingDream8165 小时前
面试题 04. 二维数组中的查找
数据结构·算法
碧海蓝天20226 小时前
二分法查找有序表的通用算法(可查链表,数组,字符串...等等)
数据结构·算法·链表