数据结构之绪论

一个著名公式:
程序=数据结构+算法
在这里插入图片描述
非数值计算:无法用数学的公式或方程来描述
描述非数值计算问题的数据模型不是数学方程,而是诸如表,树和图之类的具有逻辑关系的数据
数据结构:是一门研究非数值计算的程序设计中计算机的操作对象以及他们之间的关系和操作的学科

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

数据结构:

  1. 逻辑结构:数据元素之间的逻辑关系
  2. 物理结构|存储结构:数据元素及其关系在计算机内存中的表示
  3. 运算和实现:对数据元素可以施加的操作以及这些操作在相应的存储结构上的实现

数据结构的两个层次:

  1. 逻辑结构
    描述数据元素之间的逻辑关系
    与数据的存储无关,独立于计算机
    是从具体问题抽象出来的数学模型
  2. 物理结构(存储结构)
    数据元素及其关系在计算机存储器中的结构(存储方式)
    是数据结构在计算机中的表示

逻辑结构与存储结构的关系:

  1. 存储结构是逻辑关系的映像与元素本身的映像
  2. 逻辑结构是数据结构的抽象,存储结构是数据结构的实现
  3. 两者综合起来建立了数据元素之间的结构关系

逻辑结构的种类

划分方式一

  • 线性结构
    有且仅有一个开始和终端结点,并且所有节点都最多只有一个直接前趋和一个直接后继
    eg: 线性表,栈,队列,串

  • 非线性结构
    一个结点可能有多个直接前趋和直接后继
    eg: 树,图

划分方式二

  • 集合结构
    结构中的数据元素之间除了同属于一个集合的关系外,无任何其他关系
  • 线性结构
    结构中的数据元素之间存在着一对一的线性关系
  • 树形结构
    结构中的数据元素之间存在着一对多的层次关系
  • 图状结构
    结构中的数据元素之间存在着多对多的任意关系

存储结构的种类

四种基本的存储结构:

  • 顺序存储结构
  • 链式存储结构
  • 索引存储结构
  • 散列存储结构

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

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

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

相关文章

pyqt6 + pycharm 搭建+使用入门

首先安装PyQt6和PyQt6-tools。使用如下命令: pip install PyQt6 PyQt6-tools 但是运行后会报如下错误: 这个时候按照提示执行命令升级pip即可 python.exe -m pip install --upgrade pip 配置pycharm: 打开pycharm,进入setting&am…

基于SpringBoot的在线问卷调查系统

文章目录 项目介绍主要功能截图:部分代码展示设计总结项目获取方式🍅 作者主页:超级无敌暴龙战士塔塔开 🍅 简介:Java领域优质创作者🏆、 简历模板、学习资料、面试题库【关注我,都给你】 🍅文末获取源码联系🍅 项目介绍 基于SpringBoot的在线问卷调查系统,java…

大事务提交优化

经常性的报死锁异常,经常性的主从延迟......通过报错信息按图索骥,发现代码是这样的。 这是一段商品发布的逻辑,我们可以看到参数校验、查询、最终的insert以及update全部揉在一个事务中。遇到批量发布商品的时候就经常出现问题了&#xff0c…

css实现一个斑马条纹动画,实现一个理发店门口的小转转,进度条动画同理!

css实现一个斑马条纹动画,实现一个理发店门口的小转转 前置基础知识 css背景background的重复渐变属性repeating-linear-gradient() 该属性类似于linear-gradient(),但他会在整个方向上重复渐变以覆盖整个容器 一、先写一个普通渐变例子linear-gradient() &…

【JAVA】volatile 关键字的作用

🍎个人博客:个人主页 🏆个人专栏: JAVA ⛳️ 功不唐捐,玉汝于成 目录 前言 正文 volatile 的作用: 结语 我的其他博客 前言 在多线程编程中,保障数据的一致性和线程之间的可见性是…

Kafka(三)概述

目录 1 Kafka的应用场景1.1 活动跟踪1.2 消息传递1.3 指标和日志记录1.4 提交日志1.5 流式处理 2 Kafka的核心概念消息(message)键(Key)批次(Batch)模式(Schema)主题(Top…

复旦MBA科创青干营(二期):探索合肥科创企业的创新之路

11月18日-19日,复旦MBA科创青干营二期学生开启了整合实践活动的第三次企业参访,前往位于合肥的蔚来第二先进制造基地、安徽万邦医药科技股份有限公司和合肥国轩高科动力能源有限公司,在学术导师和科创企业家“双导师”的指导下,深…

【C++】STL 算法 ④ ( 函数对象与谓词 | 一元函数对象 | “ 谓词 “ 概念 | 一元谓词 | find_if 查找算法 | 一元谓词示例 )

文章目录 一、函数对象与谓词1、一元函数对象2、" 谓词 " 概念3、find_if 查找算法 二、一元谓词示例1、代码示例 - 一元谓词示例2、执行结果 一、函数对象与谓词 1、一元函数对象 " 函数对象 " 是通过 重载 函数调用操作符 () 实现的 operator() , 函数对…

pythonMatplotlib六:Matplotlib的图例和注释功能

1.添加图例: import matplotlib.pyplot as plt# 准备数据 x [1, 2, 3, 4, 5] y1 [2, 4, 6, 8, 10] y2 [1, 3, 5, 7, 9]# 创建折线图并设置标签 plt.plot(x, y1, labelLine 1) plt.plot(x, y2, labelLine 2)# 添加图例 plt.legend()# 添加标题和标签 plt.title(&…

【数值分析】非线性方程求根,牛顿法,牛顿下山法,matlab实现

4. 牛顿法 收敛时牛顿法的收敛速度是二阶的,不低于二阶。如果函数有重根,牛顿法一般不是二阶收敛的。 x k 1 x k − f ( x k ) f ′ ( x k ) x_{k1}x_k- \frac{f(x_k)}{f(x_k)} xk1​xk​−f′(xk​)f(xk​)​ matlab实现 %% 牛顿迭代例子 f (x) x…

华为交换机常用命令

华为交换机常用命令 查看系统状态和基本信息: display version:显示设备版本信息 display device:显示设备硬件信息 display interface brief:显示接口的基本状态 display ip interface brief:显示IP接口的基本状态 …

创建Qt项目

项目工程名称一般不要有特殊符号,不要有中文 项目工程保存路径可修改的,但路径不要带中文 构建系统,有3种,这里使用qmake qmake和cmake区别 构建过程不同,项目管理不同。 1、构建过程,qmake是Qt框架自带的…

MySQL数据库:索引

目录 一. 索引的价值 二. 数据库与磁盘的IO 2.1 磁盘的结构 2.2 磁盘访问 2.3 MySQL与磁盘的交互 三. 对索引的理解 3.1 Page的结构 3.2 B树和B树索引结构 3.2.1 B树的结构 3.2.2 B树 3.3 聚簇索引和非聚簇索引 四. 索引的操作 4.1 索引的创建 4.2 索引的查看 4.…

new FormData 同时发送表单 json 以及文件二进制流

需要新增时同时发送表单 json 以及对应的文件即可使用以下方法传参 let formDataParams new FormData(); 首先通过 new FormData() 创建你需要最后发送的表单 接着将你的对象 json 存储,注意使用 new Blob 创建大表单转换成 json 格式。以…

解决:TypeError: ‘tuple’ object does not support item assignment

解决:TypeError: ‘tuple’ object does not support item assignment 文章目录 解决:TypeError: tuple object does not support item assignment背景报错问题报错翻译报错位置代码报错原因解决方法方法一:方法二:今天的分享就到…

【Flink精讲】Flink数据延迟处理

面试题:Flink数据延迟怎么处理? 将迟到数据直接丢弃【默认方案】将迟到数据收集起来另外处理(旁路输出)重新激活已经关闭的窗口并重新计算以修正结果(Lateness) Flink数据延迟处理方案 用一个案例说明三…

Vue+JavaSpingBoot笔记(1)

一、前后端通信参数问题 1.集合【字典】类型 Vue前端传递参数: export default {methods: { test(){// 将 filteredData 中的每一行值放入 newData 对象数组中 const newData filteredData.map(item > ({key1: item.Value1,key2: item.Value2,key3: "测试"}));r…

Rasa中的tracker_store和event_broker

Rasa 中的 tracker_store 相对主流为 Redis,event_broker 相对主流为 RabbitMQ。后续为了研究学习直接将 tracker_store 和 event_broker 的 type 都设置为 SQL,使用 MySQL 统一管理。 一.Rasa 中的 tracker_store 要使用 MySQL 作为 Rasa 的 tracker_s…

开源许可证

文章目录 一、简介二、详细信息参考 一、简介 开源是指公开源代码,但这并不代表就是免费的。 开源许可证是一种法律许可。 通过它,版权拥有人明确允许,用户可以免费地使用、修改、共享版权软件。 版权法默认禁止共享,也就是说&am…

忘记密码mysql 8.2重置root密码|macos+linux

重置密码 2024年1月6日验证 1.找到support-files下的服务 # 查找mysql位置 which mysql #/usr/local/bin/mysql# 查找原始位置 ls -al /usr/local/bin | grep mysql# 进入原始的为值找到support-files文件夹 # 注意路径要全,我这里是macos系统就是Cellar下 cd /usr/local/Cell…