数据结构期末复习

章节知识点分析

第一章绪论

基本概念

  • 数据

  • 数据元素(记录、表目,是数据集合中一个个体)

  • 数据项:一个数据元素可由若干数据项组成

  • 数据对象:性质相同的数据元素的集合,是数据的一个子集

  • 数据结构:带结构的数据元素集合

    • 包括(D:元素集合、S:D上的关系、Op:D上的运算)
  • 逻辑结构:数据元素之间的逻辑关系,与计算机无关

    • 包括(D,S)

四种基本的逻辑结构:

  • 集合结构
  • 线性结构
  • 树形结构
  • 图状结构
  • 存储结构(物理结构):指数据的逻辑结构在计算机存储器中的映像表示。
    • 用二进制位串表示数据元素。元素映像叫结点,数据项映像叫数据域。

四种不同的存储结构

  • 顺序存储结构
  • 链式存储结构
  • 哈希存储结构
  • 索引存储结构
  • 算法:建立在数据结构基础上的、求解问题的一系列确切的步骤
    • 五个特性:有穷性、确定性、可行性、输入、输出
    • 性能指标:正确性、可读性、健壮性、高效率与低存储需求
    • 事前估计:空间复杂度、时间复杂度
      • 时间复杂度有最坏、最好、平均等。
      • 原地算法:空间复杂度O(1)、存储密度:数据本身存储量/实际所占存储量

题型

  • 基本概念的填写
  • 复杂度分析

第二章线性表(线性逻辑结构)

线性表:在数据元素的非空有限集中

  • 数据元素在表中的位置只取决于其序号
  • 除第一个和最后一个、每个数据元素均只有一个前驱和后驱。存在唯一第一个和最后一个

基础是用顺序表存储(存储结构)。
在这里插入图片描述

单链表(存储结构)

注意区分有无头结点的情况
当无头结点时,考虑是否需要对头元素做特殊处理

  • 单循环链表:最后一个的尾指针是第一个(或空表头)
  • 双向链表:也可是双向的循环

在这里插入图片描述

静态链表用数组模拟链表,逻辑上像链表,物理上看是数组。
采用结构体创建带数据域和指针域(整数)的结构,使用这种结构构成数组。

题型

主要是一些实现特定操作的算法题

第三章栈与队列(逻辑结构)

  • 栈:先进后出(栈顶top、栈底bottom、入栈出栈push\pop)

  • 栈也可以由顺序存储结构或链式存储结构实现(不同的存储结构)

  • 八股:n个元素依次入栈,最多可以得到的合法序列数 ( 2 n ) ! / [ ( n + 1 ) ! ∗ n ! ] (2n)!/[(n+1)!*n!] (2n)!/[(n+1)!n!]

  • 应用:递归算法(保存现场变量)、整数表达式求值

  • 队列:先进先出

  • 链式可以是循环队列、逻辑上的优化可以是双端队列。

题型

  • 递归相关计算
  • 操作合法性、出入序列合法性

第四章字符串和模式匹配

  • 存储
    • 静态就是数组存储
    • 动态就是申请空间或链式结构存储
  • 模式匹配
    • 目标:原始串、模式:需要找到的子串、结果:第一次匹配到的位置

KMP算法

复杂度:(m+n)
在这里插入图片描述在这里插入图片描述

KMP算法思想
当模式串j位成功匹配或j=0时,i j同时自增,否则j回退到next[j]记录的位置,重新比较。
next数组求解
k=0或当前位置能匹配上,下一个位置记录k+1,否则k回溯到next[k]

修正
在这里插入图片描述
在这里插入图片描述
对于next数组的修正,若当前位置可以匹配,本来是直接填写下一个位置的值的,但现在需要检查下一个位置的值是否和k位置相同,若相同则填写next[k]的值,不直接写k

题型

模拟KMP算法求Next数组,注意记录关键点在于时刻明确k的值。

第五章数组和广义表

数组本质上就是线性表,下标有确定的转化关系

矩阵的压缩存储

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

  • 带状矩阵

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

以对角线元素为中心,其确定每行中心位置,同行元素按照原来的相对中心的位置分布。

  • 稀疏矩阵
    • 三元组表
      在这里插入图片描述

    • 十字正交链表
      在这里插入图片描述

广义表

广义表的定义是递归的
在这里插入图片描述
在这里插入图片描述
注意表头表尾是一对相对概念。
正常情况下只有取表头能取出原子。

存储方式一:表头表尾分法
在这里插入图片描述在这里插入图片描述

存储方式二:孩子兄弟兄弟分法(扩展的线性链表)
在这里插入图片描述在这里插入图片描述

题型

  • 矩阵压缩下角标对应关系、三元组表或十字链表表示
  • 广义表取表头表尾、相关操作(递归)
    • 取头、取尾、求长度、深度等
    • 头尾链表存储形式、扩展的线性链表形式

第六章树与二叉树

在这里插入图片描述

度之和==结点数之和+1
完全二叉树中,双亲和左右孩子的序号有明确对应关系2i 2i+1
消除尾递归:想办法把尾递归改成迭代形式。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

WPL:带权路径长度之和。使WPL最小的数是哈夫曼树树。(路径长度是层数减1,根层数为1)
哈夫曼不等长,是前缀编码,没有度为1的结点。结点总数为2n-1
树转化为二叉树:根无右子树,左支是孩子,右支是兄弟。树/森林的先、后序对应二叉树的先、中序。

并查集,互不相交的集合。
使用树或数组表示。通常包括合并和查找操作。(通常选出一个代表做根)
合并时,为了防止退化树的出现,通常使用加权合并的方式(结点数大的做双亲)。
在这里插入图片描述

题型

  • 树的遍历序、树的相关算法
  • 并查集相关操作。

第七章图

图的基本概念

图的存储结构

图的遍历

图的联通性

有向无环图的应用

最短路径

第八章查找

基本概念和术语

  • 顺序表查找
  • 二分查找
  • 静态树的查找
  • 分块查找
  • 二叉排序树
  • 平衡二叉树
  • B树
  • 哈希表

第九章内部排序

基本概念和术语

  • 插入排序
  • 交换排序
  • 选择排序
  • 并归排序
  • 基数排序

算法比较
在这里插入图片描述

关键例题
在这里插入图片描述

第十章外部排序

  • 并归排序
    • 多路平衡并归
    • 置换-选择排序
    • 磁盘排序

例题
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

LLM漫谈(二)| QAnything支持任意格式文件或数据库的本地知识库问答系统

一、QAnything介绍 QAnything (Question and Answer based on Anything) 是致力于支持任意格式文件或数据库的本地知识库问答系统,可断网安装使用。 您的任何格式的本地文件都可以往里扔,即可获得准确、快速、靠谱的问答体验。 目前已支持格式: PDF&…

MiniCom串口调试工具使用

一、程序安装 执行下面代码,安装minicom。 sudo apt-get install minicom 二、查看串口设备名称 先拔掉串口运行下面指令,获得所有设备名称,插上串口再运行一次,新增的就是串口设备名称,记住串口设备名称,以串口设备名…

LeetCode-整数反转(7)

题目描述: 给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。 如果反转后整数超过 32 位的有符号整数的范围 [−231,231− 1] ,就返回 0。 假设环境不允许存储 64 位整数(有符号或无符号&#xff0…

[4K80 AI ISP IPC芯片]

4K80 AI ISP IPC芯片 Hi3403V100是一颗面向监控市场推出的专业 Ultra-HD Smart IP Camera SOC,该芯片最高支持四路sensor输入,支持最高4K60的ISP图像处理能力,支持3F WDR加粗样式、多级降噪、六轴防抖、硬件拼接等多种图像增强和处理算法&am…

C++多态性——(5)运算符重载(第二节)

归纳编程学习的感悟, 记录奋斗路上的点滴, 希望能帮到一样刻苦的你! 如有不足欢迎指正! 共同学习交流! 🌎欢迎各位→点赞 👍 收藏⭐ 留言​📝 身先才能率人,律己才能服人…

【SpringBoot】公共字段自动填充功能实现(枚举、自定义注解、AOP、反射)

1. 自定义注解 使用interface语法来定义注解(Annotation)。 注解的参数类似无参数方法,可以用default设定一个默认值,比如String value() default "";。 元注解:有一些注解可以修饰其他注解,这…

基础面试题整理2

1.抽象类与接口区别 语法: 抽象类用abstract定义;接口用interface定义抽象类被子类继承extends(不可用final修饰);接口被类实现implements抽象类的属性访问无限制,方法不可用private修饰;接口中的方法只能…

【STM32】STM32学习笔记-DMA数据转运+AD多通道(24)

00. 目录 文章目录 00. 目录01. DMA简介02. DMA相关API2.1 DMA_Init2.2 DMA_InitTypeDef2.3 DMA_Cmd2.4 DMA_SetCurrDataCounter2.5 DMA_GetFlagStatus2.6 DMA_ClearFlag 03. DMA数据单通道接线图04. DMA数据单通道示例05. DMA数据多通道接线图06. DMA数据多通道示例一07. DMA数…

计算机网络(2)

计算机网络(2) 小程一言专栏链接: [link](http://t.csdnimg.cn/ZUTXU) 计算机网络和因特网(2)分组交换网中的时延、丢包和吞吐量时延丢包吞吐量总结 协议层次及其服务模型模型类型OSI模型分析TCP/IP模型分析 追溯历史 小程一言 我…

数据结构——堆排序

什么是堆排序 堆排序就是利用堆(假设利用大堆)进行排序的算法。他的基本思想是,将待排序的序列构造成一个大顶堆。此时,整个序列的最大值就是堆顶的根节点。将他移走(其实就是将其与堆数组的末尾元素交换,…

简单 Web Server 程序的设计与实现 (2024)

1.题目描述 Web 服务是 Internet 最方便与受用户欢迎的服务类型,它的影响力也远远超出了专业技术范畴, 已广泛应用于电子商务、远程教育、远程医疗与信息服务等领域,并且有继续扩大的趋势。目前很多 的 Internet 应用都是基于 Web 技术的&…

Java快速排序希尔排序归并排序

快速排序算法 快速排序的原理:选择一个关键值作为基准值。比基准值小的都在左边序列(一般是无序的),比基准值大的都在右边(一般是无序的)。一般选择序列的第一个元素。 一次循环:从后往前比较&…

VMware中删除虚拟机

虚拟机使用完成后,需要删除虚拟机如何操作呢? 1.首先进入VMware 2.选择需要删除的虚拟机,点击右键 3.直接选择“移除”? 当然不是,这只是从这么目录显示中去掉了,并非 “真正” 删除该虚拟机 注意&#x…

使用sentinel作为熔断器

什么是sentinel Sentinel,中文翻译为哨兵,是为微服务提供流量控制、熔断降级的功能,它和Hystrix提供的功能一样,可以有效的解决微服务调用产生的“雪崩”效应,为微服务系统提供了稳定性的解决方案。随着Hytrxi进入了维…

labelme的json转mask,实测有效

1、创建一个conda的虚拟环境 conda creat -n labelme python3.82、转到你的标注文件夹(包括json和图片) cd C:/Users/Administrator/Desktop/json3、你需要在标注文件夹下用txt写下以下代码,并保存bat文件。 放在最后一个就可以了 echo of…

Python的核心知识点整理大全66(已完结撒花)

目录 D.3 忽略文件 .gitignore 注意 D.4 初始化仓库 D.5 检查状态 D.6 将文件加入到仓库中 D.7 执行提交 D.8 查看提交历史 D.9 第二次提交 hello_world.py D.10 撤销修改 hello_world.py 注意 D.11 检出以前的提交 往期快速传送门👆(在文…

微服务实战系列之Filter

前言 Filter,又名过滤器,当然不是我们日常中见到的,诸如此类构件: 而应该是微服务中常使用的,诸如此类(图片来自官网,点击可查看原图): 一般用于字符编码转换&#xf…

MySQL--基础篇

这里写目录标题 总览MySQl各个阶段基础篇总览 MySQL概述数据库相关概念查看本机MySQL版本号启停mysql打开windows服务管理windows命令行启停 连接mysql客户端mysql运行逻辑数据模型关系型数据库 总结 SQL总览SQL通用语法SQL语句分类DDL数据库操作表操作查询表创建表结构数据类型…

【Web开发】会话管理与无 Cookie 环境下的实现策略

🍎个人博客:个人主页 🏆个人专栏: Web开发 ⛳️ 功不唐捐,玉汝于成 目录 前言 正文 问题: 思路: 方法: 结语 我的其他博客 前言 在当今Web应用程序中,会话…

C语言-第十八周做题总结-数组3

id:454 A.字符串逆序 题目描述 输入一个字符串,对该字符串进行逆序,输出逆序后的字符串。 输入 输入在一行中给出一个不超过80个字符长度的、以回车结束的非空字符串。 输出 在一行中输出逆序后的字符串。 输入样例 输出样例 题解 先用一个while…
最新文章