数据结构(基础知识)

ops/2025/1/13 2:28:49/

基础概念:

数据:数据是信息的载体,是描述客观事物属性的数,字符及所有能输入到计算机中并被计算机程序识别和处理的符号的集合

数据元素:是数据的基本单位,在程序中常作为一个整体来考虑

数据对象:是具有相同构成的数据元素的集合,是数据的一个子集。

三者之间的关系:

数据由若干数据元素构成,而数据元素可由多个数据项构成

数据项:是数据不可再分的最小标识单位

数据元素描述的是个体,数据对象描述的是一个整体

数据结构:是互相有关联的数据元素的集合,元素之间的关系称为结构

DS=(D,R);DS=(D,S);

D是数据元素的有限集,R或S是D上关系的有限集

数据结构三要素

数据结构三要素:逻辑结构,存储结构,数据的运算

1.逻辑结构(重点)

由于数据结构中的关系描述了数据元素之间逻辑上的联系,因此也称这些关系为数据的逻辑结构,它与数据的存储无关,是独立于计算机的。

数据的逻辑结构可以把数据结构分为线性结构(线性表,栈,队列,数组)和非线性结构(集合树,图)。

2.存储结构(重点)

数据结构在计算机中的表示称为数据的存储结构或物理结构,包括数据元素的表示和关系的表示

数据的存储结构主要包括:顺序存储,链式存储,索引存储和散列存储。(简答)

(1)顺序存储:

逻辑上相邻的两个元素的物理位置也相邻。

优点:能够随机存取。

缺点:插入删除需要移动大量的元素,不方便。

(2)链式存储:

逻辑上相邻的两个元素的物理位置不一定相邻,每个结点用一个指针来找到下一个结点的位置。

优点:插入和删除很方便

缺点:随机读取时不方便,需要从第一个结点开始遍历

(3)索引存储:

在存储时,还附加建立索引表,索引表中的每一项称为索引项,索引项的一般形式是(关键字,地址)

优点:检索速度快

缺点:索引表占用存储空间,并且插入和删除一个数据时,对应的索引项也要插入和删除,会耗费较多的时间

(4)哈希存储:

通过函数,根据数据的元素的关键字计算该元素的地址

优点:检索、增加和删除结点的操作比较快

缺点:可能会出现元素存储单元的冲突,解决冲突又需要增加时间和空间的开销

3.数据的运算

施加在数据上的运算包括运算的定义和实现。

数据元素四种基本类型(简答)

1.集合

数据结构中的数据元素之间除了“同属于一个集合”的关系外,无其他关系。

2.线性结构(包括线性表,栈和队列)

数据结构中的数据元素之间存在1对1的关系。

3.树型结构

数据结构中的数据元素之间存在1对多的关系。

4.网状结构

数据结构中的数据元素之间存在多对多的关系。

4.抽象数据类型

数据对象,数据对象上关系的集合和对数据对象的基本操作的集合。

ADT = 或者ADT =

这里的D为数据 R或者S是D的关系 P是对D的基本操作集

算法的特点(简答)

(1)有穷性:能在有限的步内和有限时间内执行结束

(2)确定性:对于相同的输入执行相同路径,每条指令理解起来不会产生二义性。

(3)可行性:每条指令所表示的操作可由以实现操作的有限次运算来完成

(4)有输入:有大于等于0个来自某一特定集合的输入

(5)有输出:有大于等于1个同输入有特定关系的输出

算法的评价:正确性,可读性,健壮性,效率和存储量要求

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

算法的开销有两种方法:事后分析发和事前分析估算法

时间复杂度:一个语句的频度是指该语句在算法中被重复执行的次数

空间复杂度:该算法所消费的存储空间


http://www.ppmy.cn/ops/52854.html

相关文章

WPF文本绑定显示格式StringFormat设置-数值类型处理

绑定显示格式设置 在Textblock等文本控件中,我们经常要绑定一些数据类型,但是我们希望显示的时候能够按照我们想要的格式去显示,比如增加文本前缀,后面加单位,显示百分号等等,这种就需要对绑定格式进行处理…

开发小技巧Tips-----在Idea中配置nacos/redis等

背景: 进入了一个新的项目开发,领导为了加快开发速度(加快调试的速度),让我们在本地启动服务,然后给了我一堆数据就走了。坏了坏了,啥意思啊,自己开发的时候本地就是直接点击一下run…

开发中遇到的一个bug

遇到的报错信息是这样的: java: Annotation processing is not supported for module cycles. Please ensure that all modules from cycle [hm-api,hm-common,hm-service] are excluded from annotation processing 翻译过来就是存在循环引用的情况,导…

MySQL数据库笔记(二)

第一章 单行函数 1.1 什么是函数 函数的作用是把我们经常使用的代码封装起来,需要的时候直接调用即可。这样既提高了代码效率,又提高了可维护性。在SQL中使用函数,极大地提高了用户对数据库的管理效率。 1.2 定义 操作数据对象。 接受参数返回一个结果。 只对一行进行…

Nvidia Isaac Sim组装机器人和添加传感器 入门教程 2024(5)

Nvidia Isaac Sim 入门教程 2024 版权信息 Copyright 2023-2024 Herman YeAuromix. All rights reserved.This course and all of its associated content, including but not limited to text, images, videos, and any other materials, are protected by copyright law. …

HBase的概念、运行原理及分析

HBase 是一个分布式的、面向列的开源数据库,由 Apache 软件基金会维护,基于 Google 的 Bigtable 论文设计。它运行在 Hadoop 文件系统(HDFS)之上,并且能够处理大规模结构化数据的存储和访问。主要特点包括:…

新能源革命风起云涌:创新科技引领可持续发展新篇章

随着全球气候变化和环境问题日益严峻,新能源革命正以其不可阻挡的势头,席卷着世界的每一个角落。 创新科技在这场革命中发挥着至关重要的作用,它不仅是新能源开发利用的引擎,更是推动可持续发展的关键力量。 新能源革命的核心在于…

AI智能时代:ChatGPT如何在金融市场发挥策略分析与预测能力?

文章目录 一、ChatGPT在金融策略制定中的深度应用客户需求分析与定制化策略市场动态跟踪与策略调整策略分析与优化 二、ChatGPT在算法交易中的深度应用自动交易策略制定交易执行与监控风险管理 三、未来展望《智能量化:ChatGPT在金融策略与算法交易中的实践》亮点内…