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

Java数据结构——二叉树

二叉树

  • 树的概念
  • 二叉树
    • 满二叉树和完全二叉树
    • 二叉树的性质
    • 二叉树的遍历
  • 题目练习
    • 前序遍历
    • 中序遍历
    • 后序遍历

前言
已经知道了数据结构中的线性结构,那有没有非线性结构呢?
当然有就像我们文件夹,一个文件夹中有有另一个文件夹,这就是的 非线性的结构,就是本篇所讲的 二叉树


树的概念

树是一种非线性结构,是由n个节点构成的并且具有层次的,因为这就像一颗倒立的树

1.有一个特殊的节点就是根结点,这个结点是没有前驱的,也就是它是第一层
2.后面的结点有且只有一个前驱,可以有0个或多个后继
3.子树之间不可以有连续否则不是树形结构
4.一棵树中如果有N个节点,就有N-1条边

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

1.结点的度:就是这个结点所含子树节点的个数,例如:这里的A有6个子结点,所以A的度为6
2.树的度:就是所有结点度中的最大值,上图中树的度为6
3.叶子结点或终端结点:就是结点的度为0的结点,上图中B C D H N O等等
4.双亲结点或⽗结点:若⼀个结点含有⼦结点,则这个结点称为其⼦结点的⽗结点,如上图:A是B的⽗结点
5.孩⼦结点或⼦结点:⼀个结点含有的⼦树的根结点称为该结点的⼦结,;如上图:B是A的⼦结点
6.根结点:⼀棵树中,没有双亲结点的结点;如上图:A
7.结点的层次:从根开始定义起,根为第1层,根的⼦结点为第2层,以此类推,上图中A是根结点,所以A是第一层
8.树的⾼度或深度:结点层次中的最大值,也就是该树最后一层是多少层;如上图:树的⾼度为4
9.⾮终端结点或分⽀结点:度不为0的结点;如上图:D、E、F、G…等节点为分⽀结点
10.兄弟结点:具有相同⽗结点的结点互称为兄弟结点;如上图:B、C是兄弟结点
11.堂兄弟结点:双亲在同⼀层的结点互为堂兄弟;如上图:H、I互为兄弟结点
12.结点的祖先:从根到该结点所经分⽀上的所有结点;如上图:A是所有结点的祖先
13.⼦孙:以某结点为根的⼦树中任⼀结点都称为该结点的⼦孙。如上图:所有结点都是A的⼦孙
14.森林:由m(m>=0)棵互不相交的树组成的集合称为森林

二叉树

树这种数据结构使用最多的是二叉树
二叉树:结点的有序集合,该集合为空,也可以是左子树右子树组成的二叉树
二叉树根节点的度是<=2的,一个完整的二叉树就是由许多小的二叉树组成的

在这里插入图片描述

满二叉树和完全二叉树

两种特殊的二叉树:满二叉树和完全二叉树
满二叉树:每层节点数都是达到最大值就是满二叉树,就是如果由k行的话,就由2^k - 1个总节点
完全二叉树:就是除了最后一层没有满,上面几层是满足满二叉树的性质,但是最哟一层要按照从左向右进行编号,就是对深度为h,结点数为n个的二叉树进行编号后,各结点的编号与深度为h的满二叉树中相同位置结点上对应的编号均相同时,则这种二叉树为完全二叉树

】

如果没有按照从上到下,从左到右进行编号,不可以直接跳过进行编号,这样就不是完全二叉树

在这里插入图片描述

二叉树的性质

1.若规定根结点的层数为1,则⼀棵⾮空⼆叉树的第i层上最多有2^(i-1)(i>0)个结点
2. 若规定只有根结点的⼆叉树的深度为1,则深度为K的⼆叉树的总结的最多是2^k - 1(k>=0)
3. 对任何⼀棵⼆叉树如果其叶结点个数为n0,度为2的⾮叶结点个数为n2,则有n0=n2+1
4. 具有n个结点的完全⼆叉树的深度k为上取整
5. 对于具有n个结点的完全⼆叉树,如果按照从上⾄下从左⾄右的顺序对所有节点从0开始编号,则对于序号为i的结点有:
若i>0,双亲序号:(i-1)/2;i=0,i为根结点编号,⽆双亲结点◦
若2i+1<n,左孩⼦序号:2i+1,否则⽆左孩⼦
若2i+2<n,右孩⼦序号:2i+2,否则⽆右孩⼦
6.完全二叉树中假设总共有N个节点,有n0个叶子节点,那二者关系呢
若N是偶数,则 n0 = N/2
若N是奇数,则 n0 = (N+1) / 2

  1.若规定根结点的层数为1,则⼀棵⾮空⼆叉树的第i层上最多有2^(i-1)(i>0)个结点2.若规定只有根结点的⼆叉树的深度为1,则深度为K的⼆叉树的总结的最多是2^k - 1(k>=0)

>

3. 对任何⼀棵⼆叉树如果其叶结点个数为n0,度为2的⾮叶结点个数为n2,则有n0=n2+1
4.具有n个结点的完全⼆叉树的深度k为上取整

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

5. 对于具有n个结点的完全⼆叉树,如果按照从上⾄下从左⾄右的顺序对所有节点从0开始编号,则对于序号为i的结点有:
若i>0,双亲序号:(i-1)/2;i=0,i为根结点编号,⽆双亲结点
若2i+1<n,左孩⼦序号:2i+1,否则⽆左孩⼦ 
若2i+2<n,右孩⼦序号:2i+2,否则⽆右孩⼦

在这里插入图片描述

> 6.完全二叉树中假设总共有N个节点,有n0个叶子节点,那二者关系呢
> 若N是偶数,则 n0 = N/2
> 若N是奇数,则 n0 = (N+1) / 2

在这里插入图片描述

题目练习

1 某⼆叉树共有 399 个结点,其中有 199 个度为 2 的结点,则该⼆叉树中的叶⼦结点数为(B )
A 不存在这样的⼆叉树
B 200
C 198
D 199
性质3 叶子节点就是度为0的节点,上面已经知道一个公式就是在二叉树中 n0 = n2 + 1 = 200

2.⼀棵完全⼆叉树的节点数为531个,那么这棵树的⾼度为(B)
A 11
B 10
C 8
D 12
由性质4可知 节点总数N,高度为K , k = log(N+1) 底数为2
这里2^9 = 512 , 2的10次幂为1024,向上取整所以这里高度为10

3.在具有 2n 个结点的完全⼆叉树中,叶⼦结点个数为( A)
A n
B n+1
C n-1
D n/2
4.⼀个具有767个节点的完全⼆叉树,其叶⼦节点个数为(B)
A 383
B 384
C 385
D 386
性质6当有N个节点时候如果,N为偶数 n0 = N / 2,如果为奇数的话 n = (N+1) / 2
所以这里第二题肯定为偶数个节点,所以叶子节点为 n
第三题是奇数个节点,所以叶子节点为 768 / 2 = 384

二叉树的遍历

前序遍历:根 -> 左子树 -> 右子树
中序遍历:左子树 -> 根 -> 右子树
后序遍历:左子树 -> 右子树 -> 根
层序遍历:就是从上到下,从左向右遍历
注意在遍历的时候,每个左子树和右子树分别可以看成一个完整的树按照规则进行遍历,因此要层层瓦解进行遍历

在这里插入图片描述

题目练习

1.某完全⼆叉树按层次输出(同⼀层从左到右)的序列为 ABCDEFGH 。该完全⼆叉树的前序序列为(A)
A: ABDHECFG B: ABCDEFGH C: HDBEAFCG D: HDEBFGCA

在这里插入图片描述

2.⼆叉树的先序遍历和中序遍历如下:先序遍历:EFHIGJK;中序遍历:HFIEJKG.则⼆叉树根结点为(A)
A: E B: F C: G D: H
这里知道先序遍历第一个遍历的是根,所以说根节点为E

在这里插入图片描述

3.设⼀课⼆叉树的中序遍历序列:badce,后序遍历序列:bdeca,则⼆叉树前序遍历序列为(D)
A: adbce B: decab C: debac D: abcde
在这里插入图片描述

4.某⼆叉树的后序遍历序列与中序遍历序列相同,均为 ABCDEF ,则按层次输出(同⼀层从左到右)的序列为(A)
A: FEDCBA B: CBAFED C: DEFCBA D: ABCDEF
加粗样式在这里插入图片描述

题目练习

前序遍历

在这里插入图片描述

目的:将一棵二叉树,前序遍历放入链表中
思路:使用stack来完成,这里要进行循环,前序遍历是根,左子树,右子树这样的顺序,因此要先将root根放入链表中,在将左子树放入链表,最后是右子树,但要注意每一棵树的左子树和右子树又分别是一棵完整的树
当栈为空,或者cur == null结束循环

在这里插入图片描述

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

//非递归方法
class Solution {public List<Integer> preorderTraversal(TreeNode root) {List<Integer> list = new ArrayList<>();Stack<TreeNode> stack = new Stack<>();TreeNode cur = root;while (!stack.isEmpty() || cur != null) {//cur不为空,说明左子树没有遍历完if(cur != null){list.add(cur.val);//放入链表中stack.push(cur);cur = cur.left;//一直到左树为空}else{//开始右树cur = stack.pop();cur = cur.right;}}return list;}
}
因为左子树和右子树又可以看成一棵完整的二叉树,因此可以使用递归来写
//递归方法
class Solution {public List<Integer> preorderTraversal(TreeNode root) {List<Integer> list = new ArrayList<>();if (root == null) {return list;}return preorder(root, list);}public List<Integer> preorder(TreeNode root, List<Integer> list) {if (root == null) {return null;}//根-》左子树-》右子树list.add(root.val);preorder(root.left, list);preorder(root.right, list);return list;}
}

中序遍历

在这里插入图片描述

目的:就是将一棵树中序遍历结果放入一个链表中
思路:和前序遍历思路一样,就是使用栈来操作,但是这里不同的是链表添加元素的时候,因为中序遍历是 左子树 -》根-》右子树
所以循环,如果cur != null,就一直将左节点入栈
为空的时候,说明左子树搞完了,这时候就要将这个节点添加的链表中
再开始右子树

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

//非递归
class Solution {public List<Integer> inorderTraversal(TreeNode root) {List<Integer> list = new ArrayList<>();Stack<TreeNode> stack = new Stack<>();TreeNode cur = root;while(cur!=null||!stack.isEmpty()){if(cur!=null){stack.push(cur);cur = cur.left;}else{cur = stack.pop();list.add(cur.val);cur = cur.right;}}return list;}
}

当然也可以使用递归来写
这里要先递归左子树,再将节点的值放入链表中,最后递归右子树

class Solution {public List<Integer> inorderTraversal(TreeNode root) {List<Integer> list = new ArrayList<>();if(root == null){return list;}return inorder(root,list);}public List<Integer> inorder(TreeNode root,List<Integer> list){if(root == null){return null;}inorder(root.left,list);list.add(root.val);inorder(root.right,list);return list;}
}

后序遍历

在这里插入图片描述

目的:就是将二叉树后序遍历的结果放入一个链表中
思路:后序遍历:左子树-》右子树-》根
但是这里将其放入链表中与其不一样
cur:遍历整棵树
prev:记录上一个出栈元素
top:记录栈顶元素
因为这里使最后才放入根,因此再放入链表元素时候,这时候左子树已经遍历完了,当右子树为空,或者右子树已经入链表了,这时候就可以将这个根节点放入链表中了
top.right==null或者top.right == prev

在这里插入图片描述

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

//非递归
class Solution {public List<Integer> postorderTraversal(TreeNode root) {List<Integer> list = new ArrayList<>();Stack<TreeNode> stack = new Stack<>();TreeNode cur = root;TreeNode prev = null;//指向上一个出栈元素TreeNode top = null;//指向栈顶元素while(cur!=null||!stack.isEmpty()){while(cur!=null){stack.push(cur);cur = cur.left;}top = stack.peek();//入链表if(top.right == null || top.right == prev){//出栈stack.pop();list.add(top.val);prev = top;//记录出栈元素}else{cur = top.right;}}return list;}
}
//非递归
class Solution {public List<Integer> postorderTraversal(TreeNode root) {List<Integer> list = new ArrayList<>();if(root == null){return list;}return postorder(root,list);}public List<Integer> postorder(TreeNode root,List<Integer> list){if(root == null){return null;}postorder(root.left,list);postorder(root.right,list);list.add(root.val);return list;}
}

相关文章:

Java数据结构——二叉树

二叉树 树的概念二叉树满二叉树和完全二叉树二叉树的性质二叉树的遍历 题目练习前序遍历中序遍历后序遍历 前言 已经知道了数据结构中的线性结构&#xff0c;那有没有非线性结构呢&#xff1f; 当然有就像我们文件夹&#xff0c;一个文件夹中有有另一个文件夹&#xff0c;这就是…...

用go从零构建写一个RPC(仿gRPC,tRPC)--- 版本2

在版本1中&#xff0c;虽然系统能够满足基本需求&#xff0c;但随着连接数的增加和处理请求的复杂度上升&#xff0c;性能瓶颈逐渐显现。为了进一步提升系统的稳定性、并发处理能力以及资源的高效利用&#xff0c;版本2引入了三个重要功能&#xff1a;客户端连接池、服务器长连…...

drf 使用jwt

安装jwt pip install pyJwt 添加登录url path("jwt/login",views.JwtLoginView.as_view(),namejwt-login),path("jwt/order",views.JwtOrderView.as_view(),namejwt-order), 创建视图 from django.contrib.auth import authenticateimport jwt from jw…...

202536 | KafKa生产者分区写入策略+消费者分区分配策略

KafKa生产者分区写入策略 1. 轮询分区策略&#xff08;Round-Robin Partitioning&#xff09; 轮询分区策略 是 Kafka 默认的分配策略&#xff0c;当消息没有指定 key 时&#xff0c;Kafka 会采用轮询的方式将消息均匀地分配到各个分区。 工作原理&#xff1a; 每次生产者发…...

《自动驾驶封闭测试场地建设技术要求》 GB/T 43119-2023——解读

目录 一、标准框架与核心内容 二、重点技术要求 三、实施要点与建议 四、实施时间与参考依据 原文链接&#xff1a;国家标准|GB/T 43119-2023 &#xff08;发布&#xff1a;2023-09-07&#xff1b;实施&#xff1a;2024-01-01&#xff09; 一、标准框架与核心内容 适用范围…...

【C++ Qt】容器类(GroupBox、TabWidget)内附思维导图 通俗易懂

每日激励&#xff1a;“不设限和自我肯定的心态&#xff1a;I can do all things。 — Stephen Curry” ✍️绪论​&#xff1a; 本章主要介绍了 Qt 中 QGroupBox 与 QTabWidget 控件。QGroupBox 是带标题的分组框&#xff0c;能容纳其他控件&#xff0c;有标题、对齐方式、是否…...

【SpringBoot】从环境准备到创建SpringBoot项目的全面解析.

本篇博客给大家带来的是SpringBoot的知识点, 包括Idea的干净卸载… &#x1f40e;文章专栏: JavaEE初阶 &#x1f680;若有问题 评论区见 ❤ 欢迎大家点赞 评论 收藏 分享 如果你不知道分享给谁,那就分享给薯条. 你们的支持是我不断创作的动力 . 王子,公主请阅&#x1f680; 要…...

基于ESP32控制的机器人摄像头车

DIY Wi-Fi 控制的机器人摄像头车&#xff1a;从零开始的智能探索之旅 在当今科技飞速发展的时代&#xff0c;机器人技术已经逐渐走进了我们的生活。今天&#xff0c;我将带你一起探索如何制作一个 Wi-Fi 控制的机器人摄像头车&#xff0c;它不仅可以远程操控&#xff0c;还能通…...

Excel图表 vs 专业可视化工具:差距有多大?内容摘要

你是不是还在用 Excel 做图表&#xff0c;觉得它已经够用了&#xff1f;但你知道吗&#xff0c;Excel 和专业的可视化工具之间其实有着巨大的差距&#xff01;Excel 是办公必备&#xff0c;但它的图表功能真的能满足复杂的数据展示需求吗&#xff1f;而那些听起来高大上的专业可…...

Nacos源码—7.Nacos升级gRPC分析三

大纲 5.服务变动时如何通知订阅的客户端 6.微服务实例信息如何同步集群节点 5.服务变动时如何通知订阅的客户端 (1)服务注册和服务订阅时发布的客户端注册和订阅事件的处理 (2)延迟任务的执行引擎源码 (3)处理客户端注册和订阅事件时发布的服务变动和服务订阅事件的处理 (…...

量化学习DAY2-开始批量提交alpha!

量化学习第二天笔记 一、World Quant平台的Alpha概念 在World Quant平台中&#xff0c;alpha本质上是一个数学公式&#xff0c;它是**operator&#xff08;操作&#xff09;与Data&#xff08;数据&#xff09;**的组合。 &#xff08;一&#xff09;Data相关 Data&#xf…...

【Qwen3_ 4b lora xinli 】 task完成实践记录

task 我需要 基于llamafactory框架选取基本上相同的数据集用lora微调Qwen3_ 4b两次并保存lora参数然后分别合并这两个lora参数到基座模型。再换个数据集上接着进行微调。并且保存新的lora参数&#xff0c;然后我们匹配这里面的特征值和特征向量&#xff0c;如果这两个新的lora…...

文旅田园康养小镇规划设计方案PPT(85页)

1. 项目背景与定位 背景&#xff1a;位于长三角经济圈&#xff0c;依托安吉丰富的自然与文化资源&#xff0c;旨在打造集康养、度假、文化体验于一体的综合小镇。 定位&#xff1a;成为浙北地区知名的康养旅游目的地&#xff0c;融合“一溪两岸”规划理念&#xff0c;实现全面…...

[Windows] 能同时打开多个图片的图像游览器JWSEE v2.0

[Windows] 能同时打开多个图片的图像游览器JWSEE 链接&#xff1a;https://pan.xunlei.com/s/VOPpO86Hu3dalYLaZ1ivcTGIA1?pwdhckf# 十多年前收藏的能同时打开多个图片的图像游览器JWSEE v2.0&#xff0c;官网已没有下载资源。 JWSEE v2.0是乌鲁木齐金维图文信息科技有限公司…...

低成本自动化改造技术锚点深度解析

执行摘要 本文旨在深入剖析四项关键的低成本自动化技术&#xff0c;这些技术为工业转型提供了显著的运营和经济效益。文章将提供实用且深入的指导&#xff0c;涵盖老旧设备联网、AGV车队优化、空压机系统智能能耗管控以及此类项目投资回报率&#xff08;ROI&#xff09;的严谨…...

23盘古石决赛

一&#xff0c;流量分析 1. 计算流量包文件的SHA256值是&#xff1f;[答案&#xff1a;字母小写][★☆☆☆☆] 答案&#xff1a;2d689add281b477c82b18af8ab857ef5be6badf253db1c1923528dd73b3d61a9 解压出来流量包计算 2. 流量包长度在“640 - 1279”之间的的数据包总共有多少…...

C语言—指针3

1. 数组名的理解 观察以下代码 可以观察到pa指向的地址与数组首元素地址相同&#xff0c;那么可以说明数组就是首元素地址吗&#xff1f; 这种说法是不严谨的&#xff0c;观察以下代码&#xff1a; 程序输出的结果为16&#xff0c;此时的arr表示的是整个数组的大小。 观察以…...

操作系统 第2章节 进程,线程和作业

一:多道程序设计 1-多道程设计的目的 for:提高吞吐量(作业道数/处理时间),我们可以从提高资源的利用率出发 2-单道程序设计缺点: 设备的利用率低,内存的利用率低,处理机的利用率低 比如CPU去访问内存,CPU空转.内存等待CPU访问也是没有任何操作的.要是有多个东西要去访问不冲…...

数字化转型-4A架构之数据架构

系列文章 数字化转型-4A架构&#xff08;业务架构、应用架构、数据架构、技术架构&#xff09; 数字化转型-4A架构之业务架构 数字化转型-4A架构之应用架构 数据架构 Data Architecture&#xff08;DA&#xff09; 1. 定义 数据架构&#xff0c;是组织管理数据资产的科学之…...

Java中的反射

目录 什么是反射 反射的核心作用 反射的核心类 反射的基本使用 获取Class对象 创建对象 操作字段&#xff08;Field&#xff09; 调用方法&#xff08;Method&#xff09; 反射的应用场景 反射的优缺点 优点 缺点 示例&#xff1a;完整反射操作 总结 什么是反射 …...

LINUX CFS算法解析

文章目录 1. Linux调度器的发展历程2. CFS设计思想3. CFS核心数据结构3.1 调度实体(sched_entity)3.2 CFS运行队列(cfs_rq)3.3 任务结构体中的调度相关字段 4. 优先级与权重4.1 优先级范围4.2 权重映射表 (prio_to_weight[])优先级计算4.3.1. static_prio (静态优先级)4.3.2. n…...

内网渗透——红日靶场三

目录 一、前期准备 二、外网探测 1.使用nmap进行扫描 2.网站信息收集 3.漏洞复现(CVE-2021-23132) 4.disable_function绕过 5.反弹shell&#xff08;也&#xff0c;并不是&#xff09; 6.SSH登录 7.权限提升&#xff08;脏牛漏洞&#xff09; 8.信息收集 9.上线msf 三…...

The 2024 ICPC Kunming Invitational Contest G. Be Positive

https://codeforces.com/gym/105386/problem/G 题目&#xff1a; 结论&#xff1a; 从0开始每四个相邻数的异或值为0 代码&#xff1a; #include<bits/stdc.h> using namespace std; #define int long long void solve() {int n;cin >> n;if(n1||n%40){cout &…...

CommunityToolkit.Mvvm详解

属性可视化 给一个属性添加ObservableProperty就可以可视化了 [ObservableProperty] private string currentNameInfo;[ObservableProperty] private string currentClassInfo;[ObservableProperty] private string currentPhoneInfo;xaml中只需要绑定大写的属性就可以了 &l…...

密码学--AES

一、实验目的 1、完成AES算法中1轮加密和解密操作 2、掌握AES的4个基本处理步骤 3、理解对称加密算法的“对称”思想 二、实验内容 1、题目内容描述 &#xff08;1&#xff09;利用C语言实现字节代换和逆向字节代换&#xff0c;字节查S盒代换 &#xff08;2&#xff09;利…...

操作系统的初步了解

目录 引言&#xff1a;什么是操作系统&#xff1f; 一、设计操作系统的目的 二、操作系统是做什么的&#xff1a; 操作系统主要有四大核心任务&#xff1a; 1. 管理硬件 2. 运行软件 3. 存储数据 4. 提供用户界面 如何理解操作系统的管理呢&#xff1f; 1. 什么是操作…...

边缘计算:技术概念与应用详解

引言 随着物联网&#xff08;IoT&#xff09;、5G 和人工智能&#xff08;AI&#xff09;的快速发展&#xff0c;传统的云计算架构在处理海量数据和实时计算需求时逐渐显现出瓶颈。边缘计算&#xff08;Edge Computing&#xff09;作为一种新兴的计算范式&#xff0c;通过将计…...

C++进阶--红黑树的实现

文章目录 红黑树的实现红黑树的概念红黑树的规则红黑树的效率 红黑树的实现红黑树的结构红黑树的插入变色单旋&#xff08;变色&#xff09;双旋&#xff08;变色&#xff09; 红黑树的查找红黑树的验证 总结&#xff1a;结语 很高兴和大家见面&#xff0c;给生活加点impetus&a…...

[C++类和对象]类和对象的引入

面向过程和面向对象 C语言是面向过程的,关注的是过程,分析出求解问题的步骤,通过函数调用来逐步解决问题 C是基于面向对象的,关注的是对象,将一件事情分成不同的对象,靠对象之间完成交互 类的引入 C语言结构体中只能定义变量,在C中,结构体不仅仅可以定义变量,而且可以定义函…...

YOLOv12云端GPU谷歌免费版训练模型

1.效果 2.打开 https://colab.research.google.com/?utm_sourcescs-index 3.上传代码 4.解压 !unzip /content/yolov12-main.zip -d /content/yolov12-main 5.进入yolov12-main目录 %cd /content/yolov12-main/yolov12-main 6.安装依赖库 !pip install -r requirements.…...

课程审核流程揭秘:确保内容合规与用户体验

业务流程 为什么课程审核通过才可以发布呢&#xff1f; 这样做为了防止课程信息有违规情况&#xff0c;课程信息不完善对网站用户体验也不好&#xff0c;课程审核不仅起到监督作用&#xff0c;也是 帮助教学机构规范使用平台的手段。 如果流程复杂用工作流 说明如下&#xff…...

【LangChain高级系列】LangGraph第一课

前言 我们今天直接通过一个langgraph的基础案例&#xff0c;来深入探索langgraph的核心概念和工作原理。 基本认识 LangGraph是一个用于构建具有LLMs的有状态、多角色应用程序的库&#xff0c;用于创建代理和多代理工作流。与其他LLM框架相比&#xff0c;它提供了以下核心优…...

ATH12K 驱动框架

ATH12K 驱动框架 ath12k驱动框架及模块交互逻辑详解1. 总体架构2. 关键数据结构2.1 核心数据结构2.2 虚拟接口数据结构3. 硬件抽象层(HAL)4. 无线管理接口(WMI)5. 主机目标通信(HTC)6. 数据路径(DP)6.1 发送路径(TX)6.2 接收路径(RX)7. 多链路操作(MLO)8. 初始化和工作流程8.1 …...

CMA认证对象?CMA评审依据,CMA认证好处

CMA认证对象 CMA&#xff08;中国计量认证&#xff0c;China Metrology Accreditation&#xff09;的认证对象主要是第三方检测机构和实验室&#xff0c;包括&#xff1a; 独立检测机构&#xff1a;如环境监测站、产品质量检验所、食品药品检测机构等。 企业内部实验室&#…...

依赖关系-根据依赖关系求候选码

关系模式R&#xff08;U, F&#xff09;, U{}&#xff0c;F是R的函数依赖集&#xff0c;可以将属性分为4类&#xff1a; L: 仅出现在依赖集F左侧的属性 R: 仅出现在依赖集F右侧的属性 LR: 在依赖集F左右侧都出现的属性 NLR: 在依赖集F左右侧都未出现的属性 结论1: 若X是L类…...

解决应用程序在JAR包中运行时无法读取类路径下文件的问题

问题情景 java应用程序在IDE运行正常&#xff0c;打成jar包后执行却发生异常&#xff1a; java.io.FileNotFoundException: class path resource [cert/sync_signer_pri_test.key] cannot be resolved to absolute file path because it does not reside in the file system:…...

第十六届蓝桥杯B组第二题

当时在考场的时候这一道题目 无论我是使用JAVA的大数&#xff08;BIGTHGER&#xff09;还是赛后 使用PY 都是没有运行出来 今天也是突发奇想在B站上面搜一搜 看了才知道这也是需要一定的数学思维 通过转换 设X来把运算式精简化 避免运行超时 下面则是代码 public class lanba…...

龙虎榜——20250509

上证指数今天缩量&#xff0c;整体跌多涨少&#xff0c;走势处于日线短期的高位~ 深证指数今天缩量小级别震荡&#xff0c;大盘股表现更好~ 2025年5月9日龙虎榜行业方向分析 一、核心行业方向 军工航天 • 代表个股&#xff1a;航天南湖、天箭科技、襄阳轴承。 • 驱动逻辑…...

node提示node:events:495 throw er解决方法

前言 之前开发的时候喜欢使用高版本&#xff0c;追求新的东西&#xff0c;然后回头运行一下之前的项目提示如下 项目技术栈&#xff1a;node egg 报错 node:events:495 throw er; // Unhandled error event ^ Error: ENOENT: no such file or directory, scandir F:\my\gi…...

OrangePi Zero 3学习笔记(Android篇)4 - eudev编译(获取libudev.so)

目录 1. Ubuntu中编译 2. NDK环境配置 3. 编译 4. 安装 这部分主要是为了得到libudev&#xff08;因为原来的libudev已经不更新了&#xff09;&#xff0c;eudev的下载地址如下&#xff1a; https://github.com/gentoo/eudev 相应的代码最好是在Ubuntu中先编译通过&#…...

[AI ][Dify] Dify Tool 插件调试流程详解

在使用 Dify 进行插件开发时,调试是必不可少的环节。Dify 提供了远程服务调试的能力,让开发者可以快速验证插件功能和交互逻辑。本文将详细介绍如何配置环境变量进行插件调试,并成功在插件市场中加载调试状态的插件。 一、调试环境配置 在 Dify 的插件调试过程中,我们需要…...

learning ray之ray强化学习/超参调优和数据处理

之前我们掌握了Ray Core的基本编程&#xff0c;我们已经学会了如何使用Ray API。现在&#xff0c;让我们将这些知识应用到一个更实际的场景中——构建一个强化学习项目&#xff0c;并且利用Ray来加速它。 我们的目标是&#xff0c;通过Ray的任务和Actor&#xff0c;将一个简单…...

gpu硬件,gpu驱动,cuda,CUDA Toolkit,cudatoolkit,cudnn,nvcc概念解析

组件角色依赖关系GPU硬件无CUDA编程模型/平台需NVIDIA GPU和驱动CUDA Toolkit开发工具包&#xff08;含NVCC、库等&#xff09;需匹配GPU驱动和CUDA版本cuDNN深度学习加速库需CUDA ToolkitNVCCCUDA代码编译器包含在CUDA Toolkit中 GPU硬件&#xff1a; 硬件层面的图形处理器&…...

【C/C++】范围for循环

&#x1f4d8; C 范围 for 循环详解&#xff08;Range-based for loop&#xff09; 一、什么是范围 for 循环&#xff1f; 范围 for 循环&#xff08;Range-based for loop&#xff09; 是 C11 引入的一种简化容器/数组遍历的方式。它通过自动调用容器的 begin() 和 end() 方法…...

嵌入式开发学习(第二阶段 C语言基础)

C语言&#xff1a;第4天笔记 内容提要 流程控制 C语句数据的输入与输出 流程控制 C语句 定义 C程序是以函数为基础单位的。一个函数的执行部分是由若干条语句构成的。C语言都是用来完成一定操作的任务。C语句必须依赖于函数存在。 C程序结构 C语句分类 1.控制语句 作…...

大物重修之浅显知识点

第一章 质点运动学 例1 知识点公式如下&#xff1a; 例2 例3 例4 例5 例6 第四章 刚体的转动 例1 例2 例3 例4 例5 例6 第五章 简谐振动 例1 例2 例3 第六章 机械波 第八章 热力学基础 第九章 静电场 第十一章 恒定磁场…...

随笔-近况

好久没写了&#xff0c;手都生了。 我写的东西可以分为两类&#xff1a;技术和随笔。当然技术没有我自己创新的&#xff0c;都是些在解决问题过程中查询了很多资料&#xff0c;经过验证后&#xff0c;可以在项目上使用的。但是自从 deepseek 出现后&#xff0c;问题一下子简单…...

赤色世界 陈默传 第一章 另一个陈默

赤色世界 陈默传 第一章 另一个陈默 陈默在一片纯白的空间中缓缓睁开眼睛。没有声音&#xff0c;没有光影的变化&#xff0c;只有无尽的空白包围着他&#xff0c;仿佛整个世界被擦去了所有的色彩和形状。他站在那里&#xff0c;赤脚踩在这片空无一物的地面上&#xff0c;却能感…...

isp流程介绍(yuv格式阶段)

一、前言介绍 前面两章里面&#xff0c;已经分别讲解了在Raw和Rgb域里面&#xff0c;ISP的相关算法流程&#xff0c;从前面文章里面可以看到&#xff0c;在Raw和Rgb域里面&#xff0c;很多ISP算法操作&#xff0c;更像是属于sensor矫正或者说sensor标定操作。本质上来说&#x…...

关于大数据的基础知识(一)——定义特征结构要素

成长路上不孤单&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a; 【14后&#x1f60a;///计算机爱好者&#x1f60a;///持续分享所学&#x1f60a;///如有需要欢迎收藏转发///&#x1f60a;】 今日分享关于大数据的基础知识&#xff08;一&a…...