数据结构期末复习总结(前章)

news2024/11/27 2:45:52

作者的话

作为一名计算机类的学生,我深知数据结构的重要性。在期末复习前,我希望通过这篇博客给大家一些复习建议。希望能帮助大家夯实数据结构的基础知识,并能够更好地掌握数据结构和算法的应用。

一、绪论

数据:信息的载体,所有能输入到计算机中,被计算机程序识别和处理的符号的集合

数据元素是数据的基本单位,数据项是数据的最小单位
数据结构 = {D, R}
D:数据元素
R:数据元素间的关系
数据结构是指数据元素之间的逻辑关系,即数据的逻辑结构,与数据的存储无关

数据对象是性质相同的数据元素的集合。
抽象数据类型:信息隐蔽,数据封装,使用与实现相分离
面向对象 = 对象+类+继承+通信

数据结构包括逻辑结构和存储结构两个层次

1.1数据的逻辑结构

逻辑结构包括:线性结构、非线性结构

  1. 线性结构:
  • 集合中存在唯一一个“第一个元素”
  • 集合中存在唯一一个“最后一个元素”
  • 除最后一个元素之外,其他数据元素均有唯一的“后继”
  • 除第一个元素之外,其他数据元素均有唯一的“前驱”
  1. 非线性结构:包括树形结构、图形结构
  2. 集合结构
  • 一对多

1.2数据的物理结构

物理结构包括:

  • 顺序存储方法、链式存储方法、索引存储方法、散列存储方法

数据在计算机内存中的表示

1.3算法的基本概念

算法分析是评估算法性能的过程,包括时间复杂度和空间复杂度。时间复杂度是指算法执行所需的时间,通常用大O表示法表示。空间复杂度是指算法执行所需的内存空间。

在这里插入图片描述

算法原地工作:空间复杂度为O(1)

算法是解决问题的有限运算序列 

算法的时间复杂度不仅与问题的规模有关,还与问题的其他因素有关。如某些 排序的算法,其执行时间与待排序记录的初始状态有关

算法的设计目标:

  • 正确性、可使用性、可读性、健壮性、效率

算法的特性:

  • 有穷性、确定性、输入、输出、可行性

二:线性表

2.1相关概念

存储密度越大.存储空间的利用率就越高。显然,顺序表的在储密度为1而链表的存储密
度小于1

顺序表存取元素效率高,链表插入和删除元素效率高

在顺序表中插入一个结点的时间复杂度都是 O(n 2 ),排序的时间复杂度为 O(n 2 ) 或 O(nlog2n)

三:栈和队列

栈(Stack)是一种基本的数据结构,它具有后进先出(Last-In-First-Out,LIFO)的特性。这意味着最后插入的元素最先被删除,而最先插入的元素最后被删除。

栈在递归调用函数调用表达式求值都有所应用
队列(Queue)是一种基于先进先出(FIFO,First-In-First-Out)原则的数据结构,类似于现实生活中的排队等候。队列只允许在一端插入元素,在另一端删除元素,插入操作在队尾进行,删除操作在队头进行。

用链接方式存储的队列,在进行删除运算时一般情况下只修改头指针,但是,当删除的是队列中最后一个元素时,队尾指 15 针也丢失了,因此需对队尾指针重新赋值。

 中序表达式转后序表达式

 技巧:加括号符号后撤 

四、串

 

KMP 算法

在这里插入图片描述

手工求解 next 数组,nextval数组

在这里插入图片描述

例题:求模式串的比较次数

2019 年 408 统考真题
设主串 T=“abaabaabcabaabc”,模式串 S=“abaabc”,采用 KMP 算法进行模式匹配,到匹配成功时为止,在 匹配过程中进行的单个字符间的比较次数是?

解答

在这里插入图片描述

五、数组、矩阵和广义表

1.对称矩阵在这里插入图片描述

公式

k=\left\{\begin{array}{ll} \frac{i(i-1)}{2}+j-1 & i \geqslant j \\ \frac{j(j-1)}{2}+i-1 & i<j \end{array}\right.

2.上/下三角矩阵 

同对称矩阵

3.稀疏矩阵在这里插入图片描述

对于一个稀疏矩阵的三元组表示,我们可以用以下公式计算其所需的字符数(假设每个索引和值都需要占用2个字节):

字符数 = 6 * 非零元素个数
其中,6表示每个三元组需要占用6个字符(2个字符用于表示每个索引,2个字符用于表示值,另外再加上2个字符用于分隔三元组)。

4.广义表 

  • 长度:广义表中最上层元素的个数
  • 深度:表中括号的最大层数
  • 表头:第一个元素
  • 表尾:除表头之外的所有元素组成的表

表头为非空广义表的第一个元素,可以是一个单原子,也可以是一个子表, ((a,b,c,d))的表头为一个子表(a,b,c,d);表尾为除去表头之外,由其余元素构成的表,表为一定 是个广义表,((a,b,c,d))的表尾为空表( )。

广义表的深度是指广义表中展开后所含括号的层数,广义表的长度是指广义表 中所含元素的个数。

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

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

相关文章

【测试】loadrunner安装

努力经营当下&#xff0c;直至未来明朗&#xff01; 文章目录备注一、下载安装包二、安装loadrunner三、修改浏览器配置今天搬砖不努力&#xff0c;明天地位不稳定&#xff01; 备注 电脑最好有IE浏览器&#xff0c;但是没有也没事儿。&#xff08;注意&#xff1a;IE浏览器不…

Bootstrap系列之栅格系统

Bootstrap栅格系统 bootatrap提供了一套响应式&#xff0c;移动设备优先的流式网格系统&#xff0c;随着屏幕或者视口尺寸的增加&#xff0c;系统会自动分为最多12列&#xff0c;多出12列的将不再此行显示&#xff08;换行显示&#xff09; bootstrap网格系统有以下六个类 重点…

华为OD机试用Python实现 -【云短信平台优惠活动】(2023-Q1 新题)

华为OD机试题 华为OD机试300题大纲云短信平台优惠活动题目描述输入描述输出描述示例一输入输出说明示例二输入输出说明Python 代码实现代码编写思路华为OD机试300题大纲 参加华为od机试,一定要注意不要完全背诵代码,需要理解之后模仿写出,通过率才会高。 华为 OD 清单查看…

【Java基础】操作系统原理

一、进程 进程是指一段程序的执行过程&#xff0c;会消耗系统资源如CPU、内存、网络等。 一个进程包含静态代码段&#xff0c;数据&#xff0c;寄存器地址等 进程的特点 动态性&#xff08;可动态地创建、结束进程&#xff09; 并发性&#xff08;进程被独立调度并占用处理…

服务器部署—若依【vue】如何部署到nginx里面?nginx刷新页面404怎么办?【完美解决建议收藏】

服务器部署项目我们大家都会遇到&#xff0c;但是有些铁子会遇到很多的问题&#xff0c;比如前端部署nginx如何操作&#xff1f; 前端有单纯的静态页面、还有前后端分离的项目&#xff1b;这里博主直接分享最牛最到位的前后端分离项目的前端部署到nginx上面&#xff0c;以若依项…

C语言之习题练习集

&#x1f497; &#x1f497; 博客:小怡同学 &#x1f497; &#x1f497; 个人简介:编程小萌新 &#x1f497; &#x1f497; 如果博客对大家有用的话&#xff0c;请点赞关注再收藏 &#x1f31e; 文章目录牛客网题号&#xff1a; JZ17 打印从1到最大的n位数牛客网题号&#x…

Laravel框架03:DB类操作数据库

Laravel框架03&#xff1a;DB类操作数据库一、概述二、数据表的创建与配置三、增删改操作1. 增加信息2. 修改数据3. 删除数据四、查询操作1. 取出基本数据2. 取出单行数据3. 获取一个字段的值4. 获取多个字段的值5. 排序6. 分页五、执行任意的SQL语句一、概述 按照MVC的架构&a…

详讲函数知识

目录 1. 函数是什么&#xff1f; 2. C语言中函数的分类&#xff1a; 2.1 库函数&#xff1a; 2.2 自定义函数 函数的基本组成&#xff1a; 3. 函数的参数 3.1 实际参数&#xff08;实参&#xff09;&#xff1a; 3.2 形式参数&#xff08;形参&#xff09;&#xff1a; …

我那点浅薄的MOS模拟集成电路基础

记录研究生课程模拟集成电路设计所学到的一些知识&#xff0c;这门课是由刘老师和周老师一起上的&#xff0c;刘老师讲模拟集成部分这个模集跟模电还是有很大的区别的&#xff0c;模拟集成主要是针对MOS器件的集成&#xff0c;学得更专业也更深&#xff1b;而周老师讲的是信号检…

华为OD机试题,用 Java 解【图片整理】问题

最近更新的博客 华为OD机试 - 猴子爬山 | 机试题算法思路 【2023】华为OD机试 - 分糖果(Java) | 机试题算法思路 【2023】华为OD机试 - 非严格递增连续数字序列 | 机试题算法思路 【2023】华为OD机试 - 消消乐游戏(Java) | 机试题算法思路 【2023】华为OD机试 - 组成最大数…

Yolov3,v4,v5区别

网络区别就不说了&#xff0c;ipad笔记记录了&#xff0c;这里只说其他的区别1 输入区别1.1 yolov3没什么特别的数据增强方式1.2 yolov4Mosaic数据增强Yolov4中使用的Mosaic是参考2019年底提出的CutMix数据增强的方式&#xff0c;但CutMix只使用了两张图片进行拼接&#xff0c;…

前端组件库自定义主题切换探索-02-webpack-theme-color-replacer webpack 的实现逻辑和原理-02

接上一篇&#xff1a;《前端组件库自定义主题切换探索-02-webpack-theme-color-replacer webpack 的实现逻辑和原理-01》 上一篇说到&#xff0c;在Handler.js的this.options下面的代码&#xff0c;this.assetsExtractor new AssetsExtractor(this.options)&#xff0c;表明op…

【C++】类与对象理解和学习(下)

放在专栏【C知识总结】&#xff0c;会持续更新&#xff0c;期待支持&#x1f339;建议先看完【C】类与对象理解和学习&#xff08;上&#xff09;【C】类与对象理解和学习&#xff08;中&#xff09;本章知识点概括Ⅰ本章知识点概括Ⅱ初始化列表前言在上一篇文章中&#xff0c;…

笔记本一锁屏程序就结束(锁屏程序结束、锁屏程序退出)(在此时间后关闭硬盘、硬盘关闭)(计算机空闲状态)

笔记本一锁屏程序就结束原因问题背景问题原因在此时间后关闭硬盘何为“空闲状态”&#xff1f;解决办法问题背景 我用向日葵开了个远程连接我家里的电脑&#xff0c;但是我的笔记本一锁屏&#xff0c;过了一会回来再打开&#xff0c;向日葵就自动结束了&#xff0c;不知道咋回…

解决前端组件下拉框选择功能失效问题

问题&#xff1a; 页面下拉框选择功能失效 现象&#xff1a; 在下拉框有默认值的情况下&#xff0c;点击下拉框的其他值&#xff0c;发现并没有切换到其他值 但是在下拉框没默认值的情况下&#xff0c;功能就正常 原因 select 已经绑定选项&#xff08;有默认值&#xff09; 在…

CXL技术分析

CXL&#xff0c;全称Compute Express Link&#xff0c;该技术由Intel牵头开发用于高性能计算、数据中心&#xff0c;主要解决处理器、加速器和内存之间的cache一致性问题&#xff0c;可消除CPU、专用加速器的计算密集型工作负载的传输瓶颈&#xff0c;显著提升系统性能。 一、…

HashMap 面试专题

1、HashMap 的底层结构 ①JDK1.8 以前 JDK1.8 之前 HashMap 底层是 数组和链表 结合在一起使用也就是 链表散列。HashMap 通过 key 的hashCode 函数处理过后得到 hash 值&#xff0c;然后通过 (n - 1) & hash 判断当前元素存放的位置&#xff08;这里的 n 指的是数组的长度…

SpringBoot知识快速复习

Spring知识快速复习启动器自动装配ConfigurationImport导入组件Conditional条件装配ImportResource导入Spring配置文件ConfigurationProperties配置绑定Lombok简化开发dev-toolsyaml请求和响应处理静态资源规则与定制化请求处理-Rest映射请求处理-常用参数注解使用请求处理-Ser…

程序员在小公司(没有大牛,人少)怎么成长?

大多数小公司都是创业公司&#xff0c;所以它们有着非常独特的“创业心态”。所谓创业心态通常表现为关注快速增长&#xff0c;竭尽所能让公司盈利&#xff0c;或者达成其他一些迫切目标。 在这样一家公司工作的软件开发人员&#xff0c;你极有可能要身兼多职&#xff0c;不能…

拼数(一般贪心)

链接&#xff1a;登录—专业IT笔试面试备考平台_牛客网 来源&#xff1a;牛客网 题号&#xff1a;NC16783 时间限制&#xff1a;C/C 1秒&#xff0c;其他语言2秒 空间限制&#xff1a;C/C 262144K&#xff0c;其他语言524288K 64bit IO Format: %lld 题目描述 设有n个正整…