【数据结构】

一、架构梳理

  • 线性(1:1)

    • 线性表

      • 顺序存储 –> arr
      • 链式存储 –> 指针 (有头,无头

        有头是指有一个不存数据的头,始终作为这个链表的起点。

        会更加简单,无头的话,更改首部节点会麻烦。

        头节点不仅可以作为起点,还可以作为存储信息的仓库,因为头节点只有*next是必须的。

        • 单链表
          • 循环
          • 不循环
        • 双向链表

          lib四个版本,第一个最基础完善,第二个改成了变长结构体,第三个在第二个的基础上封装了函数指针,第四个在第二个的基础上隐藏了数据结构,只暴露接口。

          学到这里可以去读一下内核有关list的实现,主要都是宏和内联函数。

          • 循环
          • 不循环
    • 队列

      练习:

      1. 表达式计算

      2. 球钟算法
        三个栈,1h,5min,1min。27个球,过了多久队列里又是1到27的顺序。

  • 树状(1:N)

    递归递归非递归

    • 深度:层数

    • 度:子树的个数

    • 叶子:边缘节点

    • 孩子:与父节点对应

    • 兄弟:相同父节点

    • 堂兄弟:相同爷节点

    • 二叉树:

      • 满二叉树:深度为k且节点为2^k-1的二叉树
      • 完全二叉树:一颗二叉树,只有倒数两层可以存在不满两个孩子的节点,且单个孩子时只能是左孩子
    • 存储:

      • 顺序:直观,但是浪费空间
        满二叉树:父节点n,左孩子2n,右孩子2n+1
      • 链式:灵活,空间利用率高
    • 遍历

      先加中,或者,中加后,都可以逆推出树。先加后不行。

      • 按行
      • 先序(根,左,右)
      • 中序(左,根,右)
      • 后序(左,右,根)
    • 平衡:

      有很多种条件判定。

      这棵树的左右子树个数差值为1。

    • 广义表

      ( root ( left ) ( right) ),进行嵌套。

    • 搜索树

      空间换时间,查找是**o(1)**。

      课后作业:词频统计

  • 图(N:M)

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

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

相关文章

UML学习指南:从零入门到实战应用

为零基础学习者设计的UML技术文档,旨在通过详细解释和实际案例,从零开始掌握UML。 UML学习指南:从零入门到实战应用 目录 引言:UML是什么?为什么学习UML? 1.1 什么是UML?1.2 为什么我们需要UM…

Matlab实战训练项目推荐

以下是一系列适合不同技能水平的 MATLAB 实战训练项目,涵盖基础编程、数据分析、信号处理、图像处理、控制系统、机器学习等领域。这些项目可帮助你巩固理论知识并提升实际应用能力。 一、基础项目(适合初学者) 矩阵运算与可视化 目标&#x…

从零开始:Python语言进阶之异常处理

一、认识异常:程序运行中的“意外事件” 在编写Python程序时,即使代码语法完全正确,运行过程中也可能遭遇各种意外情况。这些意外被称为异常,它们会打断程序的正常执行流程。例如,当我们尝试打开一个不存在的文件、用0…

Groovy:Java 的简洁版

Groovy 是一种 动态、面向对象的编程语言,运行在 Java 虚拟机(JVM)上,并与 Java 高度兼容。你可以把它理解为“Java 的简洁版 动态特性 脚本语言的灵活性”。 🧠 Groovy 的核心特点 特性说明✅ 与 Java 高度兼容可以…

生成模型——PixelRNN与PixelCNN

一、PixelRNN PixelRNN 是一种基于循环神经网络(RNN)的像素级生成模型,通过逐个像素地生成图像来构建完整的图像,其核心思想是将图像中的像素视为序列,并利用 RNN 的能力来捕捉像素之间的依赖关系。 序列生成&#xf…

每日算法刷题Day14 5.24:leetcode不定长滑动窗口求子数组个数越长越合法4道题,用时1h20min

3. 3325.字符至少出现K次的子字符串I(中等,学习优化) 3325. 字符至少出现 K 次的子字符串 I - 力扣(LeetCode) 思想 1.给你一个字符串 s 和一个整数 k,在 s 的所有子字符串中,请你统计并返回 至少有一个 字符 至少…

怎么判断一个Android APP使用了Capacitor这个跨端框架

要判断一个 Android 应用是否使用了 Capacitor 跨端框架,可以通过以下方法逐步验证: 一、安装包结构分析 1. 解压 APK 将 .apk 文件重命名为 .zip 并解压,检查以下特征文件: • assets/public/ 目录: Capacitor 的核心…

Vue3性能优化: 大规模列表渲染解决方案

# Vue3性能优化: 大规模列表渲染解决方案 一、背景与挑战 背景 在大规模应用中,Vue3的列表渲染性能一直是开发者关注的焦点。大规模列表渲染往往会导致卡顿、内存占用过高等问题,影响用户体验和系统整体性能。 挑战 渲染大规模列表时,DOM操作…

数据仓库,扫描量

有五种通用技术用于限制数据的扫描量,正如图3 - 4所示。第一种技术是扫描那些被打上时戳的数据。当一个应用对记录的最近一次变化或更改打上时戳时,数据仓库扫描就能够很有效地进行,因为日期不相符的数据就接触不到了。然而,目前的…

反射在spring boot自动配置的应用

目录 一,背景 二,知识回顾 2.1 理解使用反射技术,读取配置文件创建目标对象(成员变量,方法,构造方法等) 三,springboot自动配置 3.1 反射在自动配置中的工作流程 3.2 浏览源码…

机器学习 Day1

机器学习概述 机器学习与人工智能、深度学习关系什么是机器学习数据集算法 机器学习与人工智能、深度学习关系 什么是机器学习 机器学习是从数据中自动分析获取模型,并利用模型对未知数据进行预测。 直观理解: 所以是从历史数据中获取规律,那么这些历…

Disruptor—2.并发编程相关简介

大纲 1.并发类容器 2.volatile关键字与内存分析 3.Atomic系列类与UnSafe类 4.JUC常用工具类 5.AQS各种锁与架构核心 6.线程池的最佳使用指南 1.并发类容器 (1)ConcurrentMap (2)CopyOnWrite容器 (3)ArrayBlockingQueue (4)LinkedBlockingQueue (5)SynchronousQueue …

开盘啦 APP 抓包 逆向分析

声明: 本文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关! 抓包 这是一个记录贴。 这个APP是数…

YOLOv8损失函数代码详解(示例展示数据变换过程)

本文将展示YOLOv8中损失函数计算的完整代码解析,注释中提供了详尽的解释,并结合示例演示了数据维度的转换,以帮助更好地理解。 YOLOv8的损失函数计算代码位于ultralytics/utils/loss.py文件中(如下所示),我…

微信小程序调用蓝牙API “wx.writeBLECharacteristicValue()“ 报 errCode: 10008 的解决方案

1、问题现象 问题:在开发微信小程序蓝牙通信功能时,常常会遇到莫名其妙的错误,查阅官方文档可能也无法找到答案。如在写入蓝牙数据时,报了这样的错误: {errno: 1500104, errCode: 10008, errMsg: "writeBLECharacteristicValue:fail:system error, status: UNKNOW…

软考 UML中的 用例图 的泛化 包含 扩展 关系

用例图的泛化、扩展和包含 - ^_^肥仔John - 博客园

MyBatis-Plus的自带分页方法生成的SQL失败:The error occurred while setting parameters

1、error描述 数据库是postgres,Java使用mybatis-plus的分页功能,生成的分页SQL不能正常运行。 "msg": "nested exception is org.apache.ibatis.exceptions.PersistenceException: Error querying database. Cause: com.baomidou.my…

Redis从入门到实战 - 原理篇

一、数据结构 1. 动态字符串SDS 我们都知道Redis中保存的key是字符串,value往往是字符串或者字符串的集合。可见字符串是Redis中最常用的一种数据结构。 不过Redis没有直接使用C语言中的字符串,因为C语言字符串存在很多问题: 获取字符串长…

人形机器人通过观看视频学习人类动作的技术可行性与前景展望

摘要 本文深入探讨人形机器人通过观看视频学习人类动作这一技术路线的正确性与深远潜力。首先阐述该技术路线在模仿人类学习过程方面的优势,包括对人类动作、表情、发音及情感模仿的可行性与实现路径。接着从技术原理、大数据训练基础、与人类学习速度对比等角度论证…

高分辨率北半球多年冻土数据集(2000-2016)

关键数据集分类&#xff1a;冰冻圈数据集时间分辨率&#xff1a;10 year < x < 100 year空间分辨率&#xff1a;1km - 10km共享方式&#xff1a;开放获取数据大小&#xff1a;339.79 MB数据时间范围&#xff1a;2000-01-01 — 2016-12-31元数据更新时间&#xff1a;2022-…