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

基于FPGA的PID算法学习———实现PID比例控制算法
基于FPGA的PID算法学习 前言一、PID算法分析二、PID仿真分析1. PID代码2.PI代码3.P代码4.顶层5.测试文件6.仿真波形 总结 前言 学习内容:参考网站: PID算法控制 PID即:Proportional(比例)、Integral(积分&…...
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以? 在 Golang 的面试中,map 类型的使用是一个常见的考点,其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...
FastAPI 教程:从入门到实践
FastAPI 是一个现代、快速(高性能)的 Web 框架,用于构建 API,支持 Python 3.6。它基于标准 Python 类型提示,易于学习且功能强大。以下是一个完整的 FastAPI 入门教程,涵盖从环境搭建到创建并运行一个简单的…...

GitFlow 工作模式(详解)
今天再学项目的过程中遇到使用gitflow模式管理代码,因此进行学习并且发布关于gitflow的一些思考 Git与GitFlow模式 我们在写代码的时候通常会进行网上保存,无论是github还是gittee,都是一种基于git去保存代码的形式,这样保存代码…...

[大语言模型]在个人电脑上部署ollama 并进行管理,最后配置AI程序开发助手.
ollama官网: 下载 https://ollama.com/ 安装 查看可以使用的模型 https://ollama.com/search 例如 https://ollama.com/library/deepseek-r1/tags # deepseek-r1:7bollama pull deepseek-r1:7b改token数量为409622 16384 ollama命令说明 ollama serve #:…...

TSN交换机正在重构工业网络,PROFINET和EtherCAT会被取代吗?
在工业自动化持续演进的今天,通信网络的角色正变得愈发关键。 2025年6月6日,为期三天的华南国际工业博览会在深圳国际会展中心(宝安)圆满落幕。作为国内工业通信领域的技术型企业,光路科技(Fiberroad&…...

消息队列系统设计与实践全解析
文章目录 🚀 消息队列系统设计与实践全解析🔍 一、消息队列选型1.1 业务场景匹配矩阵1.2 吞吐量/延迟/可靠性权衡💡 权衡决策框架 1.3 运维复杂度评估🔧 运维成本降低策略 🏗️ 二、典型架构设计2.1 分布式事务最终一致…...

数据结构第5章:树和二叉树完全指南(自整理详细图文笔记)
名人说:莫道桑榆晚,为霞尚满天。——刘禹锡(刘梦得,诗豪) 原创笔记:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 上一篇:《数据结构第4章 数组和广义表》…...
背包问题双雄:01 背包与完全背包详解(Java 实现)
一、背包问题概述 背包问题是动态规划领域的经典问题,其核心在于如何在有限容量的背包中选择物品,使得总价值最大化。根据物品选择规则的不同,主要分为两类: 01 背包:每件物品最多选 1 次(选或不选&#…...
GB/T 43887-2024 核级柔性石墨板材检测
核级柔性石墨板材是指以可膨胀石墨为原料、未经改性和增强、用于核工业的核级柔性石墨板材。 GB/T 43887-2024核级柔性石墨板材检测检测指标: 测试项目 测试标准 外观 GB/T 43887 尺寸偏差 GB/T 43887 化学成分 GB/T 43887 密度偏差 GB/T 43887 拉伸强度…...