当前位置: 首页 > java >正文

【数据结构】

架构梳理

  • 线性(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.xdnf.cn/news/7547.html

相关文章:

  • win11下docker 的使用方案
  • HTML回顾
  • C语言:基础篇之常见概念
  • 如何在前端使用WebSockets进行实时数据通信?
  • 云原生架构下的企业 DevOps 治理实践:挑战、策略与落地路径
  • [自动化集成] 使用明道云上传附件并在Python后端处理Excel的完整流程
  • Ansible模块——管理100台Linux的最佳实践
  • 再来1章linux系列-19 防火墙 iptables 双网卡主机的内核 firewall-cmd firewalld的高级规则
  • HJ17 坐标移动【牛客网】
  • 【漫话机器学习系列】269.K-Means聚类算法(K-Means Clustering)
  • 健康养生指南:科学生活,活力常驻
  • BI行业分析思维框架 - 环保行业分析(一)
  • 【JavaWeb】MyBatis
  • Python类的力量:第六篇:设计模式——Python面向对象编程的“架构蓝图”
  • 人工智能核心知识:AI Agent 的四种关键设计模式
  • ssm项目环境搭建
  • 【漫话机器学习系列】270.KNN算法(K-Nearest Neighbors)
  • JDK8到JDK17最常用的核心功能
  • mariadb-cenots8安装
  • 基于开源链动2+1模式AI智能名片S2B2C商城小程序的社群构建与新型消费迎合策略研究
  • 【Linux】第二十二章 访问网络附加内存
  • OpenCv高阶(8.0)——答题卡识别自动判分
  • 驱动开发硬核特训 · Day 31:理解 I2C 子系统的驱动模型与实例剖析
  • 前端开发——前端样式BUG调试全指南2025终极版
  • 什么是数据中台
  • TYUT-企业级开发教程-第8章
  • RK3568 OH5.1 搭建环境及源码获取
  • C/C++ 整数类型的长度
  • 基于CodeBuddy的Craft完成一个数字华容道的小游戏
  • File的使用