当前位置: 首页 > news >正文

【数据结构与算法】不就是数据结构

前言

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


目录

前言

目录

一、与数据结构相关的专业名词

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语言中如果我们想要存储类型相同且可以存储大量数据。我们就会使用到数组,然后数组就是顺序结构。

  例如:数组 int[] a={100,20,3,56,266} ,它在内存中的存储形式如图所示:
2.2.2.3 链式结构
   链式存储结构: 把数据元素存放在任意的存储单元里,这组存储单元可以是
连续的,也可以是不连续的。
  链式存储并不能反映数据元素真正的逻辑关系,因此需要用一个 指针 存放数
据元素的地址,这样通过地址就可以找到相关联的数据元素。

  例如:张三深更半夜睡不着觉,因为今天张三入室盗窃了大量的欠款,想着放在家里不安全,于是就打算把现金存入银行了,去了银行里看人挺多就在叫号机前叫了个号然后坐在椅子上等待柜台小姐姐叫号,然后去办理业务。由此我们可以看出银行的排队系统,每人去了先领一个号,等着叫号。 在等待的过程中,在哪里都可以。这其实就是链式结构!

总结

本期我们主要要了解的是数据结构概念性的内容,通过张三的故事我想大家应该有了对数据结构的大致了解,下期我们要学习的是算法的介绍。如果你需要参加应试考试请一定要记住前边的概念哦!

相关文章:

【数据结构与算法】不就是数据结构

前言 嗨喽小伙伴们你们好呀,好久不见了,我已经好久没更新博文了!之前因为实习没有时间去写博文,现在已经回归校园了。我看了本学期的课程中有数据结构这门课程(这么课程特别重要),因为之前学过一点&#xf…...

封装一个高级查询组件

封装一个高级查询组件 背景一,前端相关代码二,后端相关代码三,呈现效果总结 背景 业务有个按照自定义选择组合查询条件,保存下来每次查询的时候使用的需求。查了一下项目里的代码没有现成的组件可以用,于是封装了一个 …...

代码随想录第七章 栈与队列

1、leecode232 用栈实现队列 使用栈模拟队列的行为&#xff0c;仅使用一个栈是不行的&#xff0c;所以需要两个栈&#xff0c;一个是输入栈&#xff0c;一个是输出栈。 #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攻击的关键一步

随着互联网的普及&#xff0c;网络攻击变得越来越普遍和复杂&#xff0c;对企业和个人的网络安全构成了重大威胁。其中&#xff0c;DDoS&#xff08;分布式拒绝服务&#xff09;攻击和CC&#xff08;网络连接&#xff09;攻击是两种常见且具有破坏性的攻击类型&#xff0c;它们…...

Tune-A-Video论文阅读

论文链接&#xff1a;Tune-A-Video: One-Shot Tuning of Image Diffusion Models for Text-to-Video Generation 文章目录 摘要引言相关工作文生图扩散模型文本到视频生成模型文本驱动的视频编辑从单个视频生成 方法前提DDPMsLDMs 网络膨胀微调和推理模型微调基于DDIM inversio…...

Dataset和DataLoader用法

Dataset和DataLoader用法 在d2l中有简洁的加载固定数据的方式&#xff0c;如下 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&#xff0c;spring&#xff0c;netty&#xff0c;stomp 使用下来spring方式是最简单的. springboot版本&#xff1a;3.1.2 jdk&#xff1a;17 当前依赖版本 <dependency><groupId>org.springframework.boot<…...

LeetCode算法二叉树—相同的树

目录 100. 相同的树 - 力扣&#xff08;LeetCode&#xff09; 代码&#xff1a; 运行结果&#xff1a; 给你两棵二叉树的根节点 p 和 q &#xff0c;编写一个函数来检验这两棵树是否相同。 如果两个树在结构上相同&#xff0c;并且节点具有相同的值&#xff0c;则认为它们是…...

搭建Flink集群、集群HA高可用以及配置历史服务器

Flink集群搭建 Flink集群搭建集群规划下载并解压安装包修改集群配置分发安装目录启动集群访问Web UI Flink集群HA高可用概述集群规划配置flink配置master、workers配置ZK分发安装目录启动HA集群测试 Flink参数配置配置历史服务器概述配置启动、停止历史服务器提交一个Job任务查…...

vscode终端中打不开conda虚拟包管理

今天&#xff0c;想着将之前鸽的Unet网络模型给实现一下&#xff0c;结果发现&#xff0c;在vscode中运行python脚本&#xff0c;显示没有这包&#xff0c;没有那包。但是在其他的ipynb中是有的&#xff0c;感觉很奇怪。我检查了一下python版本&#xff0c;发现不是我深度学习的…...

【音视频】MP4封装格式

基本概念 使用MP4box.js查看MP4内部组成结构 整体结构 数据索引&#xff08;moov&#xff09;数据流包&#xff08;mdat&#xff09; 各个包的位置&#xff0c;大小&#xff0c;信息&#xff0c;时间戳&#xff0c;编码方式等全在数据索引 数据流包只有纯二进制码流数据 数据…...

环境-使用vagrant快速创建linux虚拟机

1.下载软件 虚拟机 Oracle VM VirtualBox 镜像 Vagrant by HashiCorp (vagrantup.com) 如果下载慢&#xff0c;可以复制下载链接&#xff0c;使用迅雷下载 2.安装 根据提示点击下一步即可&#xff0c;建议安装到空间较大的非系统盘。 打开 window cmd 窗口&#xff0c;…...

10.1网站编写(Tomcat和servlet基础)

一.Tomcat: 1.Tomcat是java写的,运行时需要依赖jre,所以要装jdk. 2.建议配置好环境变量. 3.默认端口号8080(业务端口)可能会被占用,建议改一下(本人改成了9999). 4.另一个默认端口是8005(管理端口). 二Servlet基础(编写一个hello world代码): 整体分为7个步骤,分别是创建…...

10CQRS

本系列包含以下文章&#xff1a; DDD入门DDD概念大白话战略设计代码工程结构请求处理流程聚合根与资源库实体与值对象应用服务与领域服务领域事件CQRS&#xff08;本文&#xff09; 案例项目介绍 # 既然DDD是“领域”驱动&#xff0c;那么我们便不能抛开业务而只讲技术&…...

DAZ To UMA⭐一.DAZ简单使用教程

文章目录 &#x1f7e5; DAZ快捷键&#x1f7e7; DAZ界面介绍 &#x1f7e5; DAZ快捷键 移动物体:ctrlalt鼠标左键 旋转物体:ctrlalt鼠标右键 导入模型:双击左侧模型UI &#x1f7e7; DAZ界面介绍 Files:显示全部文件 Products:显示全部产品 Figures:安装的全部人物 Wardrobe…...

面试题 —— Java集合篇(23题)

文章目录 1.Java中常见集合有哪些 &#xff1f;2. 说说你对Java集合是怎么理解的&#xff1f;3.请你说一下List&#xff0c;Set&#xff0c;Map三者的特点是 &#xff1f;4.在实际开发过程中如何更好的选择集合 &#xff1f;5. ArrayList和Vector区别 &#xff1f;6. ArrayList…...

SpringBoot2.7.14整合Swagger3.0的详细步骤及容易踩坑的地方

&#x1f9d1;‍&#x1f4bb;作者名称&#xff1a;DaenCode &#x1f3a4;作者简介&#xff1a;啥技术都喜欢捣鼓捣鼓&#xff0c;喜欢分享技术、经验、生活。 &#x1f60e;人生感悟&#xff1a;尝尽人生百味&#xff0c;方知世间冷暖。 &#x1f4d6;所属专栏&#xff1a;Sp…...

题解:ABC321D - Set Menu

题解&#xff1a;ABC321D - Set Menu 题目 链接&#xff1a;Atcoder。 链接&#xff1a;洛谷。 难度 算法难度&#xff1a;B。 思维难度&#xff1a;C。 调码难度&#xff1a;B。 综合评价&#xff1a;见洛谷链接。 算法 枚举二分查找。 思路 先对b升序排序&#x…...

APM32F407移植uC/OS-III实战:从源码到多任务运行全解析

1. 项目概述与核心价值最近在捣鼓一块APM32F407的开发板&#xff0c;想给它跑个实时操作系统&#xff0c;选来选去&#xff0c;最终决定上手uC/OS-III。对于很多从单片机裸机编程转向RTOS的工程师来说&#xff0c;这个选择很典型&#xff1a;uC/OS-III源码开放、结构清晰、文档…...

拒绝“拍脑袋“备货:武汉丝路云如何利用Flink实时计算打造跨境供应链的“数据大脑“?

前言 在之前的文章中&#xff08;如《揭秘跨境供应链的高并发架构》&#xff09;&#xff0c;我们探讨了如何通过微服务架构保证系统在"黑五"大促时不崩溃。但很多客户反馈了一个更深层的问题&#xff1a; "系统确实不崩了&#xff0c;但库存还是积压。要么备货…...

多场景互动抽奖公众号管理系统

快微摇一摇周边模块详解适配平台与交付方式 基于微擎系统开发&#xff0c;专为微信公众号设计&#xff0c;兼容认证服务号和订阅号&#xff08;订阅号需借用权限&#xff09;。通过微擎系统在线安装交付&#xff0c;无需额外技术部署。核心功能亮点 多主题模板支持普通摇一摇、…...

免费开源视频编辑神器Avidemux:5分钟快速上手专业剪辑

免费开源视频编辑神器Avidemux&#xff1a;5分钟快速上手专业剪辑 【免费下载链接】avidemux2 Avidemux2, simple video editor 项目地址: https://gitcode.com/gh_mirrors/avi/avidemux2 如果你正在寻找一款简单易用、功能强大的免费开源视频编辑软件&#xff0c;那么A…...

Ubuntu 20.04桌面管理器搞乱了?别慌,手把手教你找回原版GNOME桌面(附LightDM/GDM3切换命令)

Ubuntu 20.04桌面环境异常修复指南&#xff1a;从混乱到秩序 系统启动后突然发现熟悉的GNOME桌面消失了&#xff0c;取而代之的是一个陌生的登录界面和错乱的窗口布局——这可能是许多Ubuntu新手在尝试自定义系统时遇到的噩梦。本文将带你深入理解Linux显示管理器的运作机制&am…...

别死磕数据线!聊聊EMMC BGA布线里那些能删掉的‘废脚’

别死磕数据线&#xff01;EMMC BGA布线中那些被忽略的"废脚"优化策略 在PCB layout工程师的日常工作中&#xff0c;EMMC存储器的BGA封装布线常常让人头疼不已。0.5mm的球间距、密集的数据线、严格的阻抗要求&#xff0c;这些因素叠加在一起&#xff0c;往往让设计者…...

SPEC CPU 2017基准测试深度解析:从原理到实战调优

1. 项目概述&#xff1a;一次性能基准测试的巅峰对决最近在服务器和芯片圈子里&#xff0c;一个消息炸开了锅&#xff1a;曙光服务器在SPEC CPU 2017基准测试中&#xff0c;一口气刷新了四项世界纪录。对于圈外人来说&#xff0c;这可能只是一条普通的科技新闻&#xff0c;但对…...

一文搞懂MCP、Skill、Agent

理清AI大模型三大高阶概念&#xff1a;MCP、Skill、Agent 在现代AI工程体系中&#xff0c;随着大模型能力的爆发增长&#xff0c;围绕“AI工具化”和“AI自动化”的需求持续升级。MCP、Skill、Agent 是其中极为关键但又容易混淆的核心概念。掌握它们&#xff0c;不仅对AI开发者…...

将Taotoken接入Node.js后端服务,为应用添加智能对话能力

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 将Taotoken接入Node.js后端服务&#xff0c;为应用添加智能对话能力 1. 场景概述&#xff1a;后端服务集成大模型的需求 在开发具…...

避坑指南:你的Harmony和Seurat SCTransform连用顺序对了吗?一个参数引发的聚类差异

Harmony与Seurat SCTransform联用避坑指南&#xff1a;参数细节如何影响聚类结果 在单细胞RNA测序数据分析中&#xff0c;数据预处理和批次校正对最终结果的可靠性至关重要。许多研究者已经熟悉了Seurat流程中的SCTransform标准化方法和Harmony批次校正工具的基本使用&#xff…...