3/14/24数据结构、线性表

 

目录

 数据结构

数据结构三要素

逻辑结构

存储结构

 数据运算

时间复杂度

空间复杂度

线性表

线性表定义

静态分配

动态分配

线性表插入

线性表删除


 十天的时间学完了C语言督学课程,最后终于是可以投入到408的科目学习当中。关于数据结构和算法的学习很多部分在督学课中都对逻辑结构以及物理结构进行了解析并进行了实战。接下来就是不断复习巩固,到最后再回看数据结构当做复习吧。

 数据结构

数据元素是数据段基本单位,通常作为一个整体。由若干数据项组成,数据项是构成数据元素的不可分割的最小单位。

数据结构强调数据元素集合之间的关系。

数据对象强调数据元素的相同性质。

数据结构三要素

  1. 逻辑结构
  2. 物理结构
  3. 数据运算
逻辑结构
  1. 集合。数据元素之间没有直接的关系。
  2. 线性结构。数据元素之间是一对一的关系。
  3. 树形结构。数据元素之间是一对多的关系。
  4. 图形结构(网状结构)。数据元素之间是多对多的关系。
存储结构

用计算机表示数据关系的逻辑关系。

  1. 顺序存储。把逻辑上相邻的元素存储在物理位置也相邻的存储单元,元素之间的关系由存储单元的邻接关系体现。
  2. 链式存储。逻辑上相邻的元素在物理位置上可以不相邻,借助指示元素存储地址的指针来表示元素之间的逻辑关系。
  3. 索引存储。在存储信息的同时,还建立附加的索引表。索引表中的每项称为索引项,索引项一般是关键字或地址。
  4. 散列存储。根据元素的关键字直接计算出该元素的存储地址,又称哈希存储。

 顺序存储各个数据元素在物理上必须是连续的;非顺序存储各个数据元素在物理上可以是离散的。数据的存储结构会影响存储空间的分配速度。影响对数据运算的速度。

 数据运算

施加在数据上的运算包括运算的定义和实现。数据段定义是针对逻辑结构的,指出运算的功能;运算的实现是针对存储结构的,指出运算的具体操作步骤。

算法的特性:

有穷性、确定性(对于相同的输入具有相同的输出)、可行性、输入(零个或多个)、输出(一个或多个)。

好算法的特质:

正确性、可读性、健壮性(适当处理非法数据)、高效率与低存储需求(时间复杂度与空间复杂度)。

时间复杂度

只保留最高阶数项,只考虑阶数

顺序执行的代码只会影响常数项,可以忽略。

只需挑循环中的一个基本操作分析它的执行次数与n的关系即可。

如果有多层嵌套循环,只需要关注最深层循环即可。


空间复杂度

递归调用注意深度

线性表

具有相同数据类型的n个数据元素的有限序列。

每个数据元素所占空间一样大;有次序。

除第一个元素外,每个元素有且仅有一个直接前驱;除最后一个元素外,每个元素有且仅有一个直接后驱。

基本操作:

线性表定义

静态分配

动态分配

顺序表特点:随机访问、存储密度高、拓展容量不方便、插入删除数据元素不方便。

线性表插入

线性表删除

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

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

相关文章

LeetCode2115. 从给定原材料中找到所有可以做出的菜

拓扑排序 题面 题目链接:2115. 从给定原材料中找到所有可以做出的菜 - 力扣(LeetCode) 你有 n 道不同菜的信息。给你一个字符串数组 recipes 和一个二维字符串数组 ingredients 。第 i 道菜的名字为 recipes[i] ,如果你有它 所有…

基于raft的kvDB

0 CAP理论 0.1 指标 0.1.1 一致性(consistency) 客户端每次读操作,不管访问哪个节点,要么读到最新写入的数据,要么读取失败。一致性强调数据正确。 0.1.2 可用性(availability) 不管访问哪个非故障节点&#xff0…

基于uniapp的旅游景点入园预约系统 微信小程序0220o

技术要求: a) 操作系统:Windows、Linux等; b) 开发工具:Android Studio、pycharm等; c) 数据库:Oracle、MySQL等; d) 开发语言:python; e) 技术框架:采用MVC模…

【微服务-Nacos】Nacos集群的工作原理及集群间数据同步过程

上篇文章我们介绍了Nacos集群的搭建方法及步骤,下面我们来看一下Nacos集群的工作原理,一共有两部分:Leader节点选举及各节点数据同步。 1、Nacos集群中Leader节点是如何产生的 Nacos集群采用了Raft算法实现。它是一种比较简单的选举算法&am…

Xcode 15.3 Archive失败

Xcode 15.3 Archive失败 背景 升级 Xcode 到 15.3,真机运行正常。打包的时候发现 Archive 失败。 提示: Call parameter type does not match function signature! 仔细看报错里是和HandyJSON相关的提示。 解决 起初以为和 Pod 库有关系,…

C# 根据两点名称,寻找两短路程的最优解,【有数据库设计,完整代码】

前言 如果我们遇到路径问题,可以使用点点连线,给定一个点,可以到达另外几个点,寻找最优解 例:如下图所示,如果要从A1-C1,可以有三条路 1.A1-B1-C1 2.A1-B2-C1 3.A1-B3-C1 最优解肯定是A1-B1-C1&#xff0c…

linux环境基础开发工具1(vim 、 yum)

目录 前言 Linux编辑器-vim使用 Linux 软件包管理器 yum 前言 集成开发环境(IDE,Integrated Development Environment )是用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面等工具。集成了代码…

ARM 寄存器学习:(一)arm多种模式下得寄存器

ARM 处理器共有 7 种不同的处理器模式,在每一种处理器模式中可见的寄存器包括 15 个通用寄存器( R0~R14)、一个或两个(User和Sys不是异常模式,没有spsr寄存器)状态寄存器(cpsr和spsr)、程序计数器( PC )。 从上图可以看到&#xf…

组合逻辑电路(四)

目录 采用MSI的组合逻辑电路的分析与设计 采用MSI的组合逻辑电路的设计 用具有n个地址输入端的中规模集成器件实现n变量逻辑函数 用译码器设计组合逻辑电路 例 用数据选择器设计组合逻辑电路 例 用具有n个地址输入端的数据选择器实现m变量逻辑函数(m>n&#…

在webapp中手动发布一个应用

部署应用前,我们要下载Tomcat Tomcat下载 Tomcat官网:Tomcar官网 下载完成后,我们要找到webapp文件 并创建一个文件夹 创建好后,再创建一个后缀为html文件 接下来 我们要打开连接 打开连接后 我们输入我们的web网址 用完后记得…

Qt篇——QChartView获取鼠标停留位置的数值

需求:鼠标停留在QChartView上时,想要计算停留位置的数值。 一开始的方法是想要通过鼠标移动事件计算鼠标在QChartView上的坐标,在换算成数值,后来发现QChartView中除了图表数据,还有坐标轴与坐标轴数值标签占了高度&a…

openwrt中时间同步ntp使用

前言 openwrt开发中,我们可能遇到这样需求,使用路由器支持局域网内设备ntp授时功能。 作者:羽林君 转载授权以及围观:欢迎关注微信公众号:羽林君 或者添加作者个人微信:become_me ntp是什么 NTP&#…