数据结构|绪论

news2025/1/12 18:13:56

 🔥Go for it!🔥
📝个人主页:按键难防
📫 如果文章知识点有错误的地方,请指正!和大家一起学习,一起进步👀

📖系列专栏:数据结构与算法
🔥 如果感觉博主的文章还不错的话,还请 点赞👍🏻收藏⭐️ + 留言📝​支持 一下博主哦


​​​​​​​

 

前言:数据结构在学什么?

如何用程序代码把现实世界的问题信息化?

如何用计算机高效的处理这些信息从而创造价值。


一.基本概念

①数据

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


②数据元素、数据项

数据元素数据基本单位,一个数据元素可由若干数据项组成,数据项是构成数据元素的不可分割的最小单位


③数据对象、数据结构

数据结构是相互之间存在一种或多种特定关系数据元素的集合。

数据对象是具有相同性质的数据元素的集合,是数据的一个子集。


 ④数据类型、抽象数据类型

数据类型 一个值的集合和定义在集合上的一组操作的总称 

原子类型 :值不可再分

结构类型:值可以再分

抽象数据类型 : 抽象数据组织及与之相关的操作


二.数据结构的三要素

①数据的逻辑结构

数据元素的逻辑关系是什么?

集合:                                               

线性结构:

树形结构:                               

图结构:

②数据的物理结构(存储结构)

如何用计算机表示数据元素的逻辑关系?

顺序存储:

把逻辑上相邻的元素存储在物理位置 上也相邻的存储单元中,元素之间的关系由存储 单元的邻接关系来体现

优点: 随机存取,元素占用最少存储空间

缺点: 只能使用相邻的一整块存储单元,产生较多的外部碎片


 链式存储:

逻辑上相邻的元素在物理位置上可以不相邻,借助指示元素存储地址的指针来表示元素之间的逻辑关系。

优点: 不会出现碎片现象

缺点: 存储指针占用额外的存储空间; 只能顺序存取


索引存储:

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

优点: 检索速度快

缺点: 占用较多存储空间; 增加和删除数据要修改索引表,花费较多时间


 散列存储:

根据元素的关键字直接计算出该元素 的存储地址,又称哈希(Hash)存储

优点: 检索,增加和删除结点都很快

缺点: 若散列函数不好,出现元素存储单元冲突,会增加时间和空间的开销

 ③.数据的运算

运算的定义是针对逻辑结构的, 指出运算的功能

运算的实现是针对存储结构的,指出运算的具体操作步骤。


三.总结

 在探讨一种数据结构时:
①定义逻辑结构(数据元素之间的关系)
②定义数据的运算(针对现实需求,应该对这种逻辑结构进行什么样的运算)
③确定某种存储结构,实现数据结构,并实现一些对数据结构的基本运算

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/331673.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于STM32设计的音乐播放器

一、项目背景与设计思路 1.1 项目背景 时代进步,科学技术的不断创新,促进电子产品的不断更迭换代,各种新功能和新技术的电子产品牵引着消费者的眼球。人们生活水平的逐渐提高,对娱乐消费市场需求日益扩大,而其消费电子产品在市场中的占有份额越来越举足轻重。目前消费电…

FPGA纯verilog代码读写N25Q128A QSPI Flash 提供工程源码和技术支持

目录1、N25Q128A芯片解读2、N25Q128A读写时序3、整体设计思路架构4、verilog读写Flash驱动设计5、verilog读写Flash控制器设计6、FIFO缓存设计7、串口输出Flash读取数据8、vivado工程介绍9、上板调试验证并演示10、福利:工程源码获取1、N25Q128A芯片解读 N25Q128A的…

一篇文章学懂C++和指针与链表

指针 目录 指针 C的指针学习 指针的基本概念 指针变量的定义和使用 指针的所占的内存空间 空指针和野指针 const修饰指针 指针和数组 指针和函数 指针、数组、函数 接下来让我们开始进入学习吧! C的指针学习 指针的基本概念 指针的作用:可…

K8S集群管理平台Rancher(2):安装与使用

Rancher 是一个容器管理平台。Rancher 简化了使用 Kubernetes 的流程。 下面记录一下手动安装Rancher的步骤 一、docker安装rancher 拉取rancher镜像 docker pull rancher/rancher运行rancher容器 sudo docker run -d --restartalways \ -v /mydata/docker/rancher_data…

基于Apache Maven构建多模块项目

title: 基于Apache Maven构建多模块项目 date: 2022-04-10 00:00:00 tags: Apache Maven多模块 categories:Maven 介绍 多模块项目由管理一组子模块的聚合器 POM 来构建。在大多数情况下聚合器位于项目的根目录中,并且必须是 pom 类型的项目。子模块是常规的 Mave…

excel数据整理:合并计算快速查看人员变动

相信大家平时在整理数据时,都会对比数据是否有重复的地方,或者该数据与源数据相比是否有增加或者减少。数据量不大还好,数据量大的话,对比就比较费劲了。接下来我们将进入数据对比系列课程的学习。该系列一共有两篇教程&#xff0…

ESP8266 + STC15+ I2C OLED带网络校时功能的定时器时钟

ESP8266 + STC15+ I2C OLED带网络校时功能的定时器时钟 📍相关篇《ESP8266 + STC15基于AT指令通过TCP通讯协议获取时间》 📌ESP8266 AT固件基于安信可AT固件,相关刷AT固件可以参考《NodeMCU-刷写AT固件》 🔖STC15 单片机采用的是:STC15F2K60S2 晶振频率采用内部:22.11…

Java面试——多线程并发篇

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…

滑动窗口算法

滑动窗口 滑动窗口有俩种:定窗口和不定窗口。滑动窗口说白了就是双指针的运用。 定窗口说明是一个特定窗口大小,通常用来解决相邻的元素,最大值,最小值。 不定窗口说的是,先由右指针去找到第一个能够符合题意的位置…

【微信小程序】在WXML文件中显示JS文件中全局变量的方法

前言我们知道在wxml中可以通过数据绑定的方法来获取到js文件中data里面的数据,并且显示到wxml界面,那么我们该如何在wxml中显示js文件里面的全局变量呢?显示data里面数据的方法在wxml种我们可以显示js代码中data代码段中的变量。具体的操作是…

《跃迁:从技术到管理的硅谷路径》读后感

一、技术管理 1.技术管理包含两层含义: 一层是管理自己和团队的技术,进行技术选型,在正确的场景使用最适合的技术,保证程序简捷、强壮、可维护,最终完成产品的上线另一层是管理技术团队,帮助团队成员成长…

【面试题】2023 vue高频面试知识点汇总

一、MVVM原理在Vue2官方文档中没有找到Vue是MVVM的直接证据,但文档有提到:虽然没有完全遵循MVVM模型,但是 Vue 的设计也受到了它的启发,因此在文档中经常会使用vm(ViewModel 的缩写) 这个变量名表示 Vue 实例。为了感受MVVM模型的…

十二款硬盘数据恢复软件!恢复数据,最适合你的是这一款

硬盘数据发生丢失,通过快捷键、回收站、备份都无法恢复回来。对于电脑小白来说,最好的方法就是通过专业软件恢复数据。市面上很多硬盘数据恢复软件,我们大多不清楚它们有哪些功能,好不好用。 为此,我尝试了十二款数据…

雪花算法snowflake

snowflake中文的意思是 雪花,雪片,所以翻译成雪花算法。它最早是twitter内部使用的分布式环境下的唯一ID生成算法。在2014年开源。雪花算法产生的背景当然是twitter高并发环境下对唯一ID生成的需求,得益于twitter内部高超的技术,雪…

【从头开始】Java基础Day05

面向对象、三大特性、异常处理Day05面向对象构造器创建对象内存分析封装继承Super关键字重写多态instanceofStatic详解抽象类接口异常ErrorExceptionError和Exception的区别异常处理机制自定义异常类实际应用中关于异常的总结Day05 面向对象 面向对象编程的本质就是&#xff1…

在这些工厂、农田、服务区,看到智能中国的草蛇灰线

今天,应该很少人会怀疑,以AI、5G、云计算等新一代技术为核心的第四次工业革命,将发生在中国。正如保尔芒图在《十八世纪产业革命》中写道的那样:大工业的特殊性,并不是一下子就显露出来的。一开始,只是城市…

如何将VirtualBox虚拟机转换到VMware中

转换前的准备 首先需要你找到你的virtualbox以及VM安装到哪个文件夹里了,需要将这两个文件夹添加进环境变量Path中。 如果你记不清了,可以用everything全局搜索一下“VBoxManage.exe’以及“vmware-vdiskmanager.exe”,看一眼这个程序放到哪…

推荐几个好用的在线代码编译器

程序员最喜欢用的在线IDE代码编译器,功能很强大,类别很全! 1.网址https://tech.io/snippet 支持 20 种编程语言,页面上没有杂七杂八的东西,非常简约,非常干净,另外,它上面的代码段…

UE4:使用样条生成随机路径,并使物体沿着路径行走

一、关于样条的相关知识 参考自:样条函数 - 馒头and花卷 - 博客园 三次样条(cubic spline)插值 - 知乎 B-Spline(三)样条曲线的性质 - Fun With GeometryFun With Geometry 个人理解的也不是非常深,但是大概要知道的就是样条具…

【C++实现红黑树】

文章目录一、红黑树的概念及性质二、红黑树节点的定义三、红黑树的插入四、红黑树的验证五、完整代码六、总结一、红黑树的概念及性质 红黑树,是一种二叉搜索树,但在每个结点上增加一个存储位表示结点的颜色,可以是Red或Black。 通过对任何一…