数据结构的基本组成及概念,数据项,数据元素,数据对象,逻辑结构等(基础)

article/2025/11/5 13:17:49

程序=数据结构+算法

什么是数据结构?
数据:是所有能够输入到计算机中,且能被计算机处理的符号的集合。
结构:是指数据之间的关系。
数据结构:就是将数据及其之间的关系有效地存储在计算机中并进行基本操作。
算法:是对特定问题求解步骤的一种描述,就是解决问题的方法和策略。

数据结构中的几个基本概念
数据:数据是指所有能输入到计算机中的描述客观事物的符号,包括文本、声音、图像、符号等。
数据项:数据项表示有独立含义的数据最小单位,也称域。若干个数据项构成一个数据元 素,数据项是不可分割的最小单位
数据元素:数据元素是数据的基本单位,也称节点或记录
数据对象:数据对象是指相同特性的数据元素的集合,是数据的一个子集。
在这里插入图片描述
数据结构的组成
一个数据结构的组成分别是:逻辑结构、存储结构、数据运算
逻辑结构:数据之间的关系(逻辑关系),包括集合线性结构树形结构图形结构
存储结构:数据元素及其关系在计算机中的存储方式,顺序存储链式存储散列存储索引存储
运算:能实现什么操作,施加在该数据的操作

逻辑结构 ----> 映射 -----> 存储结构

逻辑结构的类型:集合
特点:元素之间没有关系,数据元素之间除了“属于同一个集合”的关系外,别无其他逻辑关系。如下图:
在这里插入图片描述
逻辑结构的类型:线性结构
特点:元素之间关系是一对一的,开始元素和终端元素都是唯一的,除此之外,其余元素都有且仅有一个前驱元素和一个后继元素。如下图:
在这里插入图片描述
逻辑结构的类型:树形结构
特点:元素之间关系是一对多的,开始元素唯一,终端元素不唯一。除终端元素以外,每个元素有一个或多个后续元素;除开始元素外,每个元素有且仅有一个前驱元素。如下图:
在这里插入图片描述
逻辑结构的类型:图形结构
特点:元素之间关系是多对多的,所有元素都可能有多个前驱元素和多个后继元素。如下图:
在这里插入图片描述

存储结构:顺序存储
特点:所有元素占用一整块内存空间。逻辑上相邻的元素,物理上也相邻。借助元素在存储器中的相对位置来表示数据元素之间的逻辑关系。

存储结构:链式存储
特点:一个逻辑元素用一个结点存储,每个结点单独分配,所有结点的地址不一定是连续的。
用指针来表示逻辑关系。

算法
数据运算是对数据的操作。最常用的运算有检索、插入、删除、更新和排序等。
同样的运算,在不同的存储结构中,其实现过程是不同的。
例如:删除,在顺序存储和在链式存储中,它们的实现是不用的。

以上可以简单总结如下:
在这里插入图片描述
结论:
1、同一逻辑结构可以对应多种存储结构。
2、同样的运算,在不同的存储结构中,其实现过程是不同的。


http://chatgpt.dhexx.cn/article/G4Pdi8eg.shtml

相关文章

数据结构基本概念和术语(数据、数据元素,数据对象,数据项)及举例描述

1、数据(Data) 是对信息的一种符号表示。在计算机科学中是指所有能输入到计算机中并被计算机程序处理的符号的总称。如图象、声音等都可以通过编码而归之于数据的范畴。 2、数据元素(Data Element) 是数据的基本单位,在计算机程序中通常作为一个整…

数据、数据元素和数据项

一、数据 数据:是描述客观事物的符号,是计算机中可以操作的对象, 是能被计算机识别,并输入给计算机处理的符号集合。 数据就是符号,两个条件:可以输入到计算机中;能被计算机程序处理。 二、数据…

4019 设备树 Linux device tree 概述

一&#xff1a;主要关键字定义说明 <1>. DT :Device Tree <2>. FDT : Flattened Device Tree <3>. OF :Open Firmware <4>. DTS :device tree source <5>. DTSI:device tree source include <6>. DTB :device tree blob <7>.…

修改高通IPQ4019/4018的flash的分区

修改IPQ4019/4018的MTD分区 简介 高通的IPQ4018的SoC使用了ARM的CPU&#xff0c;并使用了高通的QSDK. 在开发中发现很难在它的架构中去修改MTD分区信息。 今天就提供一种可以修改MTD分区的方式。 MTD分区信息是如何从Uboot传到linux的&#xff0c;有几种方式&#xff1f;…

ipq4019 识别板卡型号的过程

openwrt系统启动后&#xff0c;会在/tmp/sysinfo/生成两个文件。其中保存了板卡型号的信息。如下日志。 [rootAbloomy:sysinfo]# pwd /tmp/sysinfo [rootAbloomy:sysinfo]# ls board_name model [rootAbloomy:sysinfo]# # cat board_name ap-dk01.1-c1 [rootAbloomy:sysinfo]# …

IPQ4019 QSDK 下添加RM500Q 5G 驱动 qmi拨号链接网络 配置 IPK包方法

拿到的移远的拨号软件驱动只用qmi方式&#xff0c;GobiNet 似乎没有。 一、运行环境 1.qca-networking-2019-spf-11-0_qca_oem 2.IPQ4019 3.Linux4.4.60 4.USB3.0接口 RM500Q qmi拨号上网 二、移植步骤 1.首先内核Linux4.4.60需要添加的关于RM500Q USB 的PID VID等步骤&a…

高通IPQ4019 IPQ4029 模块+底板双频 AC无线路由模块开发板

1、简介 采用 PH2.0 双排针插拔简易安装方式&#xff0c;可以通过连接不同种类的接口板设计&#xff0c;可以扩展无线路由、网络存储、广告热点、4G、DTU 数据传输、串口转 WIFI、远程监控等多功能产品应用&#xff1b;最大程度简化了无线网络产品开发设计过程。 可以根据客户…

wifi5 router/ wallys/IPQ4019 IPQ4029 ,802.11AC 2x2 2.4G5G/IPQ5018, 802.11ax,wifi 6e,QCN9074

IPQ4019 IPQ4029 ,802.11AC 2x2 2.4G&5G ​​​​​​2x2 2.4Ghz&5G IPQ5018, 802.11ax,wifi 6e,QCN9074, 2X2 2.4G support 2x WiFi 6E Card support BT5.1 MT7915/MT7975/IPQ6000/IPQ6018/IPQ6010/IPQ4019/IPQ4029/ipq4018/IPQ4028/IPQ8072/IPQ8072A/IPQ8074/IPQ…

IPQ4019MTD分区生成的过程

简介 本文介绍一个IPQ4019的MTD分区信息是如何从配置文件一步步传递到linux内核的。这个过程有几个部分组成&#xff0c;分区信息在编译过程中的传递&#xff1b;升级时写入flash区&#xff1b;设备上电时linux如何得到分区信息。 上电后linux打印的MTD分区如下图。 分区信息在…

修改IPQ4019/4018的MTD分区

简介 高通的IPQ4018的SoC使用了ARM的CPU&#xff0c;并使用了高通的QSDK. 在开发中发现很难在它的架构中去修改MTD分区信息。 今天就提供一种可以修改MTD分区的方式。 MTD分区信息是如何从Uboot传到linux的&#xff0c;有几种方式&#xff1f; 换一种问法 uboot如何把参数传入l…

IPQ4019/QCA9531/MT7628/MT7621系嵌入式无线双频AP核心模块选型探讨

嵌入式双频无线AP核心模块,首先是核心模块,不是成品主板,也可以认为是成品的核心部分&#xff0c;或者理解成只带方便延伸的接口功能&#xff0c;不带外围实际接口的成品&#xff0c;实际使用时&#xff0c;可以根据所需要的接口灵活选择(未必要使用全部接口)&#xff1b;功能上…

ARM 汇编语言

1. 什么是汇编语言&#xff1f; 计算机处理器&#xff0c;执行的是 二进制的 10101010001&#xff0c;这些机器码对应的助记符就是汇编指令。 处理器 fetch 到的指令是 1001010101, 可能就是 对应汇编语言中 ADD 的加法指令&#xff0c; 处理器执行 加法操作&#xff0c;并把…

利用keil完成ARM汇编语言编程入门实践

文章目录 一、安装keil软件1.下载安装包2.安装keil3.安装stm32 pack 二、简单的stm汇编语言的编程1.新建工程项目2、新建main.c文件3.编译4.stm32仿真调试5.hex文件分析解读 一、安装keil软件 1.下载安装包 下载安装mdk5软件和stm32包&#xff08;链接&#xff1a;https://pa…

如何在ARM下进行高效的C编程?

通过一定的风格来编写C程序&#xff0c;可以帮助C编译器生成执行速度更快的ARM代码。下面就是一些与性能相关的关键点&#xff1a; 1.对局部变量、函数参数和返回值要使用signed和unsigned int类型。这样可以避免类型转换&#xff0c;而且可高效地使用ARM的32位数据操作指令。 …

## ARM基础编程实验

ARM基础编程实验 作者&#xff1a; Saint 掘金&#xff1a;https://juejin.im/user/5aa1f89b6fb9a028bb18966a 微博&#xff1a;https://weibo.com/5458277467/profile?topnav1&wvr6&is_all1 GitHub&#xff1a;github.com/saint-000 CSDN: https://me.csdn.net/qq_4…

ARM汇编编程基础

(一) -- ARM CPU寄存器 本系列文章节选自本人所著《深入浅出嵌入式底层软件开发》。 本系列文章&#xff0c;所需代码请从以下地址下载: http://download.csdn.net/download/scyangzhu/4602585 ARM的汇编编程&#xff0c;本质上就是针对&#xff23;&#xff30;&#…

搭建Keil编程环境,ARM汇编语言编程入门实践

多看多学 一、安装及配置环境01 型号分类及缩写02 资料共享03 安装器件支持包04 Keil简单设置 二、简单程序编译01 新建工程02 配置环境03 添加源文件04 设置仿真器模式05 编译调试06 分析Hex文件 三、中值滤波及程序设计01 中值滤波02 流程框图03 程序设计 四、总结参考资料 一…

ARM编程环境搭建教程

随着移动互联网的繁荣发展&#xff0c;物联网人工智能的兴起&#xff0c;嵌入式开发成为了越来越多IT人必须学习的内容&#xff0c;而在嵌入式芯片领域&#xff0c;ARM具有无可撼动的市场占有率&#xff0c;所以说&#xff0c;学习嵌入式不学ARM&#xff0c;不如回家卖红薯。 接…

嵌入式ARM设计编程(四) ARM启动过程控制

文章和代码已归档至【Github仓库&#xff1a;hardware-tutorial】&#xff0c;需要的朋友们自取。或者公众号【AIShareLab】回复 嵌入式 也可获取。 一、实验目的 &#xff08;1&#xff09; 掌握建立基本完整的ARM 工程&#xff0c;包含启动代码&#xff0c;C语言程序等&…

《嵌入式基础》实验三 ARM编程模型和ARM指令

零、前言 本人不擅长写汇编相关的东西&#xff0c;所以以下内容也是不断摸索&#xff08;百度 &#xff09; 整出来的&#xff0c;和linux的实验报告的质量相比较低。 一、 实验目的 掌握ARM微处理器的汇编指令的使用方法。掌握使用 LDM/STM&#xff0c;B&#xff0c;BL 等指…