复试--数据结构篇[1-4章]

news2024/11/19 2:42:07

目录

  • 第一章 绪论
  • 第二章 线性表
    • 1-线性表的顺序表示(顺序表)
    • 2-线性表的链式表示(链表)
      • (1)单链表
      • (2)循环链表
      • (3)双向链表
    • 3-顺序表和链表的比较
    • 4-线性表的应用
  • 第三章 栈和队列
    • 1-栈
      • 顺序栈
      • 链栈
      • 栈的应用
    • 2-队列
      • 循环队列
      • 链队
      • 双端队列
    • 栈和队列的对比
  • 第四章 串
    • 1-定长顺序存储表示
    • 2-堆分配存储表示
    • 3-串的块链存储表示
    • 4-串的模式匹配算法
    • 串的应用

第一章 绪论

1-逻辑结构
在这里插入图片描述

2-存储(物理)结构
顺序
在这里插入图片描述
链式
在这里插入图片描述
索引存储:建立附加的索引表来标识结点的地址
散列存储:根据结点的关键字通过散列函数计算节点的地址
3-抽象数据类型
在这里插入图片描述
4-算法的五个特性
在这里插入图片描述

第二章 线性表

1-线性表的顺序表示(顺序表)

在这里插入图片描述
在这里插入图片描述
顺序表的插入
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
时间复杂度分析:
在这里插入图片描述

2-线性表的链式表示(链表)

重要特性:失去了顺序表随机存取的特性
在这里插入图片描述
链表分类:(1)实现线性表的链式存储结构–单链表、循环链表、双向链表。(2)实现非线性结构:二叉链表、十字链表、邻接表、邻接多重表

(1)单链表

头指针: 指向链表的第一个结点(首元结点)
头节点: 首元节点前的一个结点。
为什么对单链表设置头节点:(1)保证每一个结点都有前驱节点,使得插入删除结点的处理统一。(2)在表空时存在头节点,使得空表和非空表的处理统一。(3)可以在头结点中存放一些信息,比如结点的个数。
在这里插入图片描述
取值 :时间复杂度:o(n)
因为需要从首元结点出发,顺着链域next逐个结点向下访问
在这里插入图片描述
插入和删除: 时间复杂度均为o(n)
在这里插入图片描述
单链表和顺序存储结构的区别
在这里插入图片描述
创建单链表的两种方法:
在这里插入图片描述
在这里插入图片描述
尾插法需要增加一个尾指针r指向链表的尾结点
两个有序链表并为一个有序链表:

在这里插入图片描述
静态链表:
使用数组实现,数组的一个分量代表一个结点,在用一个游标代替指针 指示 结点在数组中的相对位置。
在这里插入图片描述
在这里插入图片描述

(2)循环链表

在这里插入图片描述
设置尾指针:

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

(3)双向链表

在这里插入图片描述

3-顺序表和链表的比较

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

4-线性表的应用

(1)线性表的合并
(2)有序表的合并

第三章 栈和队列

1-栈

仅在表尾(栈顶)操作
在这里插入图片描述

顺序栈

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

链栈

在这里插入图片描述

栈的应用

(1)数制转换
(2)括号匹配的检验
(3)表达式求值
(4)递归需要栈(后调用先返回)
在这里插入图片描述
(5)利用栈将递归转换为非递归

2-队列

队头删除,队尾插入
在这里插入图片描述
在这里插入图片描述

循环队列

在这里插入图片描述
队列循环队列队空、队满
在这里插入图片描述
求队列长度:
在这里插入图片描述

链队

在这里插入图片描述

双端队列

在这里插入图片描述
应用: 操作系统中用来解决主机和外设之间速度不匹配问题和多个用户引起的资源竞争问题(例如共享打印机)

栈和队列的对比

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

第四章 串

在这里插入图片描述
包括定长顺序存储、堆分配存储、块链存储

1-定长顺序存储表示

在这里插入图片描述

2-堆分配存储表示

在这里插入图片描述

3-串的块链存储表示

在这里插入图片描述

4-串的模式匹配算法

在这里插入图片描述
两种算法:BF算法和KMP算法
BF
在这里插入图片描述
KMP算法
求解next数组
在这里插入图片描述
在这里插入图片描述
改进的KMP算法: 计算nextval数组

串的应用

(1)文本编辑
(2)建立词索引表-信息检索

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

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

相关文章

Hyper-V中的虚拟机双网卡配置

Hyper-V中的虚拟机双网卡配置 在虚拟机交换管中 存在三种虚拟交换机分别是外部、内部和专用 内部网络:虚拟机与虚拟机访问宿主机,虚拟机可以访问物理网络 外部网络:虚拟机与虚拟机之间,虚拟机与宿主机之间,虚拟机或宿…

大数据学习路线

学习建议 #1、Java 这个没毛病,看 Java 程序员进阶之路就好了,Spring Boot 也要能掌握 #2、MySQL 要能写复杂的 SQL 语句,为后面学习 Hive 数仓的 HQL 打好基础。 #3、Linux 大数据的相关软件都是在 Linux 上运行的,所以 Linux …

Django默认的Auth权限管理系统的使用

1.Django默认已经提供了认证系统Auth模块。认证系统包含: 用户管理权限用户组密码哈希系统用户登录或内容显示的表单和视图一个可插拔的后台系统 admin Django默认用户的认证机制依赖Session机制,我们在项目中将引入JWT认证机制,将用户的身…

无法启动此程序,因为dll丢失的解决方法分享

大家在使用电脑的时候,应该经常会遇到这种情况吧?在你打开某些程序的时候,突然弹出一个框框说无法启动此程序,因为dll丢失,那么遇到这种情况,我们需要怎么去解决呢?今天小编就详细的给大家讲解一…

对象的序列化和反序列化

读写JSON格式的数据 通过上面的讲解,我们已经知道如何将文本数据和二进制数据保存到文件中,那么这里还有一个问题,如果希望把一个列表或者一个字典中的数据保存到文件中又该怎么做呢?在Python中,我们可以将程序中的数…

方向梯度直方图(HOG)

摘要: 方向梯度直方图(HOG)特征是一种在计算机视觉和图像处理中用来进行物体检测的特征描述。HOG特征通过计算和统计图像局部区域的梯度方向直方图来构成特征。主要用于解决人体目标检测,主要通过梯度方向直方图特征来表达人体,提取人体的外…

OpenMMLab AI实战营Day1 计算机视觉算法基础与 OpenMMLab

目录 一、计算机视觉任务 二、计算机视觉的应用 三、计算机视觉的发展 四、OpenMMLab介绍 一、计算机视觉任务 计算机视觉三大基础任务:分类、检测、分割。 分割分为两种:语义分割(Semantic Segmentation)、实例分割&#xff08…

【Node.js实战】一文带你开发博客项目之Express重构(博客的增删查改、morgan写日志)

个人简介 👀个人主页: 前端杂货铺 🙋‍♂️学习方向: 主攻前端方向,也会涉及到服务端 📃个人状态: 在校大学生一枚,已拿多个前端 offer(秋招) 🚀未…

Java之并发编程(二)

二、Java内存模型(重要) 1. CPU缓存模型 1.1 CPU缓存 CPU缓存是为了解决 CPU处理速度和内存处理速度不对等的问题。(类比:缓存如Redis是为了解决程序处理速度和访问常规关系型数据库速度不对等的问题) 内存缓存是为…

UDS诊断系列介绍16-DTC状态位介绍

本文框架1. 系列介绍2.各状态位逻辑介绍2.0 Bit0(TestFailed)置位逻辑2.1 Bit1(TestFailedThisOperationCycle)置位逻辑2.2 Bit2(PendingDTC)置位逻辑2.3 Bit3(ConfirmedDTC)置位逻辑2.4 Bit4(TestNotCompletedSinceLastClear)置位逻辑2.5 Bit5(TestFailedSinceLastClear)置位逻…

网站排名下降怎么恢复(网站降权的原因如何知道)

网站降权后恢复网站排名的方法 对于我们很多SEO新手来说,降权可能是不可避免的,但很多时候是因为我们的无知或粗心大意导致网站降权,从延长排名周期到导致网站进入沙盒效应,所以我们的网站降权后并非无法恢复。很多时候&#xff…

【逆向分析】静态分析_Navtive_小计

静态分析so小计 源APK https://github.com/eternalsakura/ctf_pwn/blob/master/android%E9%80%86%E5%90%91/mobicrackNDK.apk jadx 通过源码发现关键函数在 public native boolean testFlag(String str);static {System.loadLibrary("mobicrackNDK");}所以要看na…

【C++】入门(上)

本期博客给大家带来的全是干货,慢慢享用吧~C入门主要是一些对C语言不足的语法补充,废话不多说直接上干货:一、C的输出和输入1.1 输出在C上我们要想在屏幕(控制台)上进行一些内容的输出可以使用关键字:cout具…

MoCo解读

MoCo方法由何凯明团队提出,是无监督对比学习的代表作。经过MoCo预训练的视觉表征迁移到各种下游任务时,其效果超过了有监督预训练模型。 两点创新 对比学习的思想是将相似的样本距离拉近,不相似的样本距离拉远。对比学习主要在两方面进行设计…

JavaEE13-MyBatis查询数据库

前言:前面已经学习了Spring,Spring Boot,Spring MVC这3个框架,接下来学习第4个框架MyBatis(国内):将前端传递的数据存储起来(前身IBatis)或者查询数据库里面的数据。PS:不同版本号区别3.5.1 -> 3.5的第一个版本3.5.10 -> 3.…

命令执行利用

数据来源 01 命令执行漏洞 命令执行漏洞- 例子1(无防御) 示例:(我这里使用dvwa靶场做演示) 解决靶场响应结果的中文乱码 charsetutf-8,修改为charsetgb2312 把安全等级调到:low&#xff0…

concat函数在mySQL和Oracle中的不同

在mysql中的使用1>.在该函数中传入两个值:22和33,得到结果为两个值的拼接效果如图所示2>.在该函数中传入两个及以上的值:22和33和44,得到结果为多个值的拼接效果如图所示3>.在该函数中传入两个及以上的值:null和22和33,得…

GitHub 上有哪些优秀的项目?

前言 各个领域模块的都整理了一下,包含游戏、一些沙雕的工具、实用正经的工具以及一些相关的电商项目,希望他们可以给你学习的路上增加几分的乐趣,我们直接进入正题~ 游戏 1.吃豆人 一款经典的游戏开发案例,包括地图绘制、玩家控…

车载网络 - BootLoader - CAN/CANFD刷写过程

话接上回,我们继续分享刷写流程。 刷写Boot到RAM(如果ECU中有独立的boot代码,无需执行此段) 9、获取单次刷写的最大长度(参考https://mp.csdn.net/mp_blog/creation/editor/127720716) Request:34 00 44 + 地址 + 长度 Response:74 00 44 + Maxlength 10、进行刷写传…

Netty之DefaultAttributeMap与AttributeKey的机制和原理

为什么要分析DefaultAttributeMap和AttributeKey呢?我自己对Netty也是一个不断的学习过程,从前面几篇Netty分析的博客中,可以看出,Netty是比较博大精深的,很像java.util.concurrent.*包中的源码,如果只是看…