【数据结构与算法】不就是数据结构
前言
嗨喽小伙伴们你们好呀,好久不见了,我已经好久没更新博文了!之前因为实习没有时间去写博文,现在已经回归校园了。我看了本学期的课程中有数据结构这门课程(这么课程特别重要),因为之前学过一点,所以就想着深入学习一下子。毕竟这门课程对于考研和就业都有着不小得作用。如果博客写的有问题,感谢指正。话不多说,我们开始学习吧!

目录
前言
目录
一、与数据结构相关的专业名词
1.1 数据
1.2 数据元素
1.3 数据项
1.4 数据对象
二、 数据结构
2.1 数据结构的概念
2.2 数据结构的分类
2.2.1 物理结构
2.2.1.1 集合结构
2.2.1.2 线性结构
2.2.1.2 树形结构
编辑
2.2.1.2 图形结构
编辑
2.2.2 物理结构
2.2.2.2 顺序结构
2.2.2.3 链式结构
总结
一、与数据结构相关的专业名词
1.1 数据
描述客观事物的符号 ,是能直接输入到计算机中,并被计算机识别、 加工处理和存储的对象。数据既可以是数值型的数据,也可以是非数字型的数据如:图像、声音、视频等。
1.2 数据元素
数据元素是数据结构中 基本的独立单元 ,也被称为元素、结点、记录等。
1 李白 23 老板 20000000 0100-01-01 可以看做一个数据元素。
1.3 数据项
数据项是数据具有独立含义的 最小标识单位 ,也被称为字段或域。
一个数据元素由多个数据项组成。 如:" 1 李白 23 老板 20000000 0100-01-01"这个数据元素由
"1、李白 、23、老板、20000000、0100-01-01"这几个数据项组成。
1.4 数据对象
数据对象:是性质相同的数据元素的集合,是数据的子集。性质相同指的是:数据元素具有 相同数量和类型的数据项 。如上图 的信息表就是一个数据对象,它的数据由id、name、age、job、salary、entrydate、mangagerid、dept_id组成。在不产生混淆的情况下,简称数据对象为数据。
二、 数据结构
2.1 数据结构的概念
数据结构:是相互之间存在一种或多种特定关系的数据元素的集合。
在计算机中,数据元素并不是孤立的、杂乱无序的,而是具有内在联系的数据集合。简单而言,数据结构就是数据元素之间的相互关系,即数据的组织形式。
2.2 数据结构的分类
数据结构分为:物理结构和逻辑结构。
2.2.1 逻辑结构
逻辑结构反映的是数据元素之间的逻辑关系,是从具体问题抽象出来的数学模型。逻辑结构可以分为四种: 集合结构、线性结构、树形结构、图形结构 。
2.2.1.1 集合结构
(1)集合结构中的数据元素 除了同属于一个集合外 ,它们之间没有其他的关系。(2)集合中的数据元素是 “ 平等 ” 的,它们的共同特点是 “ 同属于一个集合 ” 。

2.2.1.2 线性结构
线性结构中的数据元素是 一对一的关系 。类似于小火车,从火车头开始,每一节车厢都连接着下一节火车。

2.2.1.2 树形结构

图形结构有点像我们现实中的大树一样,我们可以先从树根去看,首先是特别粗壮的树根然后再往上看是树枝,然后树枝上也有可能还是树枝然后到了叶子。把我们现实中的大树倒过来看就是树形结构。在树形结构中是一对多的关系,一棵大树有着多个树枝,一个树枝对应着多片叶子。
2.2.1.2 图形结构
图形结构我们可以想象一下我们使用的导航,从A点到B点我们可以乘坐的不同的交通工具。“法外狂徒”张三刚从A城偷走价值连城的宝物之后打算回到B城可以使用地铁、公交、私家车、单车进行出行,然后到达P城之后我们可以选择私家车、轮渡、火车。由此可见张三每到达一个城市可以选择多种交通工具。故 图形结构的数据元素是 多对多的关系 。

2.2.2 物理结构
2.2.2.1 物理结构概述
物理结构指的是 数据的逻辑结构在计算机中的存储形式 ,也称为 存储结构 。
物理存储结构反映的是如何将数据元素存储到计算机中的存储器中,存储结构(物理结构)主要有两种: 顺序存储和链式存储 。
2.2.2.2 顺序结构
把数据元素存储在地址连续的存储单元里,数据元素的 逻辑次序和物理次序是一致的 。
顺序结构类似于张三偷东西,张三每次在作案时都会事先想好偷东西的顺序,如果张三不严格按照作案的先后顺序,就会留下蛛丝马迹,被警察叔叔发现他作案的证据。
我相信大家都应该对C语言不陌生吧,如果没有学过可以看博主的C语言专栏。在C语言中如果我们想要存储类型相同且可以存储大量数据。我们就会使用到数组,然后数组就是顺序结构。
2.2.2.3 链式结构
链式存储结构: 把数据元素存放在任意的存储单元里,这组存储单元可以是连续的,也可以是不连续的。
链式存储并不能反映数据元素真正的逻辑关系,因此需要用一个 指针 存放数据元素的地址,这样通过地址就可以找到相关联的数据元素。
例如:张三深更半夜睡不着觉,因为今天张三入室盗窃了大量的欠款,想着放在家里不安全,于是就打算把现金存入银行了,去了银行里看人挺多就在叫号机前叫了个号然后坐在椅子上等待柜台小姐姐叫号,然后去办理业务。由此我们可以看出银行的排队系统,每人去了先领一个号,等着叫号。 在等待的过程中,在哪里都可以。这其实就是链式结构!
总结
本期我们主要要了解的是数据结构概念性的内容,通过张三的故事我想大家应该有了对数据结构的大致了解,下期我们要学习的是算法的介绍。如果你需要参加应试考试请一定要记住前边的概念哦!

相关文章:
【数据结构与算法】不就是数据结构
前言 嗨喽小伙伴们你们好呀,好久不见了,我已经好久没更新博文了!之前因为实习没有时间去写博文,现在已经回归校园了。我看了本学期的课程中有数据结构这门课程(这么课程特别重要),因为之前学过一点…...
封装一个高级查询组件
封装一个高级查询组件 背景一,前端相关代码二,后端相关代码三,呈现效果总结 背景 业务有个按照自定义选择组合查询条件,保存下来每次查询的时候使用的需求。查了一下项目里的代码没有现成的组件可以用,于是封装了一个 …...
代码随想录第七章 栈与队列
1、leecode232 用栈实现队列 使用栈模拟队列的行为,仅使用一个栈是不行的,所以需要两个栈,一个是输入栈,一个是输出栈。 #include<iostream> #include<vector> #include<string> #include<stack> #incl…...
SQL Server对象类型(5)——4.5. 同义词(Synonym)
4.5. 同义词(Synonym) 4.5.1. 同义词概念 与Oracle中相同,SQL Server中的同义词是虚的、被定义的模式对象,其本身并不存储任何数据。其用途之一就是为其他类型基础对象提供一个别名;用途之二就是为应用提供一个抽象层,以方便后期应用相关的基础对象的更改和维护。用户可…...
IP风险查询:抵御DDoS攻击和CC攻击的关键一步
随着互联网的普及,网络攻击变得越来越普遍和复杂,对企业和个人的网络安全构成了重大威胁。其中,DDoS(分布式拒绝服务)攻击和CC(网络连接)攻击是两种常见且具有破坏性的攻击类型,它们…...
Tune-A-Video论文阅读
论文链接:Tune-A-Video: One-Shot Tuning of Image Diffusion Models for Text-to-Video Generation 文章目录 摘要引言相关工作文生图扩散模型文本到视频生成模型文本驱动的视频编辑从单个视频生成 方法前提DDPMsLDMs 网络膨胀微调和推理模型微调基于DDIM inversio…...
Dataset和DataLoader用法
Dataset和DataLoader用法 在d2l中有简洁的加载固定数据的方式,如下 d2l.load_data_fashion_mnist() # 源码 Signature: d2l.load_data_fashion_mnist(batch_size, resizeNone) Source: def load_data_fashion_mnist(batch_size, resizeNone):"""…...
【跟小嘉学习区块链】二、Hyperledger Fabric 架构详解
系列文章目录 【跟小嘉学习区块链】一、区块链基础知识与关键技术解析 【跟小嘉学习区块链】一、区块链基础知识与关键技术解析 文章目录 系列文章目录[TOC](文章目录) 前言一、Hyperledger 社区1.1、Hyperledger(面向企业的分布式账本)1.2、Hyperledger社区组织结构 二、Hype…...
springboot下spring方式实现Websocket并设置session时间
概述 springboot实现websocket有4种方式 servlet,spring,netty,stomp 使用下来spring方式是最简单的. springboot版本:3.1.2 jdk:17 当前依赖版本 <dependency><groupId>org.springframework.boot<…...
LeetCode算法二叉树—相同的树
目录 100. 相同的树 - 力扣(LeetCode) 代码: 运行结果: 给你两棵二叉树的根节点 p 和 q ,编写一个函数来检验这两棵树是否相同。 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是…...
搭建Flink集群、集群HA高可用以及配置历史服务器
Flink集群搭建 Flink集群搭建集群规划下载并解压安装包修改集群配置分发安装目录启动集群访问Web UI Flink集群HA高可用概述集群规划配置flink配置master、workers配置ZK分发安装目录启动HA集群测试 Flink参数配置配置历史服务器概述配置启动、停止历史服务器提交一个Job任务查…...
vscode终端中打不开conda虚拟包管理
今天,想着将之前鸽的Unet网络模型给实现一下,结果发现,在vscode中运行python脚本,显示没有这包,没有那包。但是在其他的ipynb中是有的,感觉很奇怪。我检查了一下python版本,发现不是我深度学习的…...
【音视频】MP4封装格式
基本概念 使用MP4box.js查看MP4内部组成结构 整体结构 数据索引(moov)数据流包(mdat) 各个包的位置,大小,信息,时间戳,编码方式等全在数据索引 数据流包只有纯二进制码流数据 数据…...
环境-使用vagrant快速创建linux虚拟机
1.下载软件 虚拟机 Oracle VM VirtualBox 镜像 Vagrant by HashiCorp (vagrantup.com) 如果下载慢,可以复制下载链接,使用迅雷下载 2.安装 根据提示点击下一步即可,建议安装到空间较大的非系统盘。 打开 window cmd 窗口,…...
10.1网站编写(Tomcat和servlet基础)
一.Tomcat: 1.Tomcat是java写的,运行时需要依赖jre,所以要装jdk. 2.建议配置好环境变量. 3.默认端口号8080(业务端口)可能会被占用,建议改一下(本人改成了9999). 4.另一个默认端口是8005(管理端口). 二Servlet基础(编写一个hello world代码): 整体分为7个步骤,分别是创建…...
10CQRS
本系列包含以下文章: DDD入门DDD概念大白话战略设计代码工程结构请求处理流程聚合根与资源库实体与值对象应用服务与领域服务领域事件CQRS(本文) 案例项目介绍 # 既然DDD是“领域”驱动,那么我们便不能抛开业务而只讲技术&…...
DAZ To UMA⭐一.DAZ简单使用教程
文章目录 🟥 DAZ快捷键🟧 DAZ界面介绍 🟥 DAZ快捷键 移动物体:ctrlalt鼠标左键 旋转物体:ctrlalt鼠标右键 导入模型:双击左侧模型UI 🟧 DAZ界面介绍 Files:显示全部文件 Products:显示全部产品 Figures:安装的全部人物 Wardrobe…...
面试题 —— Java集合篇(23题)
文章目录 1.Java中常见集合有哪些 ?2. 说说你对Java集合是怎么理解的?3.请你说一下List,Set,Map三者的特点是 ?4.在实际开发过程中如何更好的选择集合 ?5. ArrayList和Vector区别 ?6. ArrayList…...
SpringBoot2.7.14整合Swagger3.0的详细步骤及容易踩坑的地方
🧑💻作者名称:DaenCode 🎤作者简介:啥技术都喜欢捣鼓捣鼓,喜欢分享技术、经验、生活。 😎人生感悟:尝尽人生百味,方知世间冷暖。 📖所属专栏:Sp…...
题解:ABC321D - Set Menu
题解:ABC321D - Set Menu 题目 链接:Atcoder。 链接:洛谷。 难度 算法难度:B。 思维难度:C。 调码难度:B。 综合评价:见洛谷链接。 算法 枚举二分查找。 思路 先对b升序排序&#x…...
使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式
一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明:假设每台服务器已…...
国防科技大学计算机基础课程笔记02信息编码
1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制,因此这个了16进制的数据既可以翻译成为这个机器码,也可以翻译成为这个国标码,所以这个时候很容易会出现这个歧义的情况; 因此,我们的这个国…...
python打卡day49
知识点回顾: 通道注意力模块复习空间注意力模块CBAM的定义 作业:尝试对今天的模型检查参数数目,并用tensorboard查看训练过程 import torch import torch.nn as nn# 定义通道注意力 class ChannelAttention(nn.Module):def __init__(self,…...
PHP和Node.js哪个更爽?
先说结论,rust完胜。 php:laravel,swoole,webman,最开始在苏宁的时候写了几年php,当时觉得php真的是世界上最好的语言,因为当初活在舒适圈里,不愿意跳出来,就好比当初活在…...
Mybatis逆向工程,动态创建实体类、条件扩展类、Mapper接口、Mapper.xml映射文件
今天呢,博主的学习进度也是步入了Java Mybatis 框架,目前正在逐步杨帆旗航。 那么接下来就给大家出一期有关 Mybatis 逆向工程的教学,希望能对大家有所帮助,也特别欢迎大家指点不足之处,小生很乐意接受正确的建议&…...
《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)
CSI-2 协议详细解析 (一) 1. CSI-2层定义(CSI-2 Layer Definitions) 分层结构 :CSI-2协议分为6层: 物理层(PHY Layer) : 定义电气特性、时钟机制和传输介质(导线&#…...
大数据零基础学习day1之环境准备和大数据初步理解
学习大数据会使用到多台Linux服务器。 一、环境准备 1、VMware 基于VMware构建Linux虚拟机 是大数据从业者或者IT从业者的必备技能之一也是成本低廉的方案 所以VMware虚拟机方案是必须要学习的。 (1)设置网关 打开VMware虚拟机,点击编辑…...
深入解析C++中的extern关键字:跨文件共享变量与函数的终极指南
🚀 C extern 关键字深度解析:跨文件编程的终极指南 📅 更新时间:2025年6月5日 🏷️ 标签:C | extern关键字 | 多文件编程 | 链接与声明 | 现代C 文章目录 前言🔥一、extern 是什么?&…...
uniapp中使用aixos 报错
问题: 在uniapp中使用aixos,运行后报如下错误: AxiosError: There is no suitable adapter to dispatch the request since : - adapter xhr is not supported by the environment - adapter http is not available in the build 解决方案&…...
pikachu靶场通关笔记22-1 SQL注入05-1-insert注入(报错法)
目录 一、SQL注入 二、insert注入 三、报错型注入 四、updatexml函数 五、源码审计 六、insert渗透实战 1、渗透准备 2、获取数据库名database 3、获取表名table 4、获取列名column 5、获取字段 本系列为通过《pikachu靶场通关笔记》的SQL注入关卡(共10关࿰…...


