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

【硬件相关】IB网/以太网基础介绍及部署实践

文章目录

    • 一、前言
      • 1、Infiniband网络
      • 1.1、网络类型
      • 1.2、网络拓扑
      • 1.3、硬件设备
        • 1.3.1、网卡
        • 1.3.2、连接线缆
          • a、光模块
          • b、线缆
        • 1.3.4、交换机
      • 2、Ethernet网络
    • 二、部署实践(以太网)
      • 1、Intel E810-XXVDA2
        • 1.1、网卡信息
        • 1.2、检查命令
        • 1.2、驱动编译
      • 2、Mellanox MCX456A-ECAT [ConnectX-4]
        • 2.1、网卡信息
        • 1.2、检查命令
        • 1.2、驱动安装

一、前言

1、Infiniband网络

What is InfiniBand Network and the Difference with Ethernet?

Infiniband是一种高带宽、低延迟、高可靠性的开放标准网络互连技术,这项技术是由 IBTA (InfiniBand Trade Association)定义的,该技术在超级计算机集群领域得到了广泛的应用。

1.1、网络类型

Infiniband在物理层定义了多种链路速度,如x1链路、x4链路、x12链路,每个单独的链路都是四线串行差分连接(每个方向两根线),目前大多采用x4链路,当前Infiniband主流常见网络类型参考如下:

在这里插入图片描述

网络类型信号速率编码方式x1链路速率x4链路速率x12链路速率
SDR(Single Data Rate)2.5Gb/s8b/10b2Gb/s8Gb/s24Gb/s
DDR(Double Data Rate)5Gb/s8b/10b4Gb/s16Gb/s48Gb/s
QDR(Quad Data Rate)10Gb/s8b/10b8Gb/s32Gb/s96Gb/s
FDR(Fourteen Data Rate)14.0625Gb/s64b/66b13.64Gb/s54.54Gb/s163.64Gb/s
EDR(Ehanced Data Rate)25.78125Gb/s64b/66b25Gb/s100Gb/s300Gb/s
HDR(High Data Rate)50Gb/s64b/66b50Gb/s200Gb/s600Gb/s
NDR(Next Data Rate)100Gb/s64b/66b100Gb/s400Gb/s1200Gb/s

1.2、网络拓扑

Infiniband是处理器和I/O设备之间数据流的通信链路,支持多达64,000个可寻址设备。IBA(InfiniBand Architecture)是一个行业标准规范,它定义了一个点对点交换输入/输出框架,用于互连服务器、通信基础设施、存储设备和嵌入式系统。

Infiniband具有广泛性、低时延、高带宽和低管理成本等优点,是将多个数据流(集群、通信、存储、管理)在一个连接中连接数千个节点的理想选择。最小的IBA完整单元是一个子网(单个子网最大可由6万多个节点组成),多个子网通过路由器相互连接,形成一个大的IBA网络。子网内部使用交换机进行二层处理,子网之间使用路由器或网桥进行连接。

在这里插入图片描述

Infiniband是一种基于通道的结构,通道适配器就是搭建Infiniband通道使用的,所有传输均以通道适配器开始或结束,以确保安全或在给定的QoS(服务质量)级别下工作。其组成单元可以分为以下四类:

  • HCA(Host Channel Adapters):主机通道适配器
  • TCA(Target Channel Adapters):目标通道适配器
  • IB Link(Infiniband Link):Infiniband连接通道,包括连接头和线缆两部分,其中线缆可以是电缆或光纤
  • Switch/Router:Infiniband组网设备

infiniband architecture

1.3、硬件设备

1.3.1、网卡

高端网卡通常支持IB RDMA和ROCE两种,可以接入IB交换机或以太网交换机,具体支持情况需要根据产品规格进行确定。
网卡按照速率可分为QDR(40Gb)、EDR(100Gb)、HDR(200Gb)及NDR(400Gb)

1.3.2、连接线缆

连接线缆包括光模块和线缆两部分

a、光模块

The Big Differences Between SFP, SFP+, SFP28, QSFP+, QSFP28, QSFP-DD, and OSFP
Quickview about SFP, SFP+, SFP28, QSFP+, QSFP28, QSFP-DD and OSFP
sfp-vs-sfp-vs-sfp28-vs-qsfp-vs-qsfp28-vs-qsfp-dd-vs-osfp-differences

光模块在数据通信行业中起着关键的作用,SFP、SFP+、SFP28、QSFP+、QSFP28、QSFP56、QSFP-DD和OSFP是不同类型的光收发器。
它们都是可热插拔的网络接口模块,用于连接网络交换机和其他网络设备(如服务器)的数据传输,常见光模块类型参考如下:

光模块类型支持速率大小(mm2)兼容性线缆类型连接头
SFP100 Mb/s
1 Gb/s
113.9100 Mb/s SFP+Fiber、Twisted PairLC、RJ45
SFP+10 Gb/s113.91 Gb/s SFPFiber、Twisted Pair、DACLC、RJ45
SFP2825 Gb/s113.910 Gb/s SFP+Fiber、DACLC
SFP5650 Gb/s113.9SFP、SFP+、SFP28Fiber、DACLC
QSFP4 Gb/s156none
QSFP+40 Gb/s156noneFiber、DACLC、MTP/MPO
QSFP2850 Gb/s156QSFP+Fiber、DACLC
QSFP28100 Gb/s156noneFiber、DACLC、MTP/MPO-12
QSFP56200 Gb/s156noneFiber、DACLC、MTP/MPO-12
QSFP-DD400 Gb/s156QSFP+、QSFP28Fiber、DACLC、MTP/MPO-16
OSFP400 Gb/s
800 Gb/s
比QSFP略大noneFiber、DACLC、MTP/MPO-12
b、线缆

Infiniband网络中,使用的线缆区别于传统的以太网线缆和光纤线缆。针对不同的连接场景,需使用专用的InfiniBand线缆,可分为DAC高速铜缆、AOC有源线缆两种,两者材质不一(前者使用铜缆、后者使用光纤),AOC有源线缆价格要高于DAC高速铜缆
注:针对不同网络速率,QDR(40Gb)、EDR(100Gb)、HDR(200Gb)及NDR(400Gb)对应线缆有所不同,需要根据选定的IB交换机及网卡适配

1.3.4、交换机

Infiniband网络需使用专用的IB交换机

2、Ethernet网络

以太网(Ethernet)是由Xerox主导,并由Xerox、Intel、DEC联合开发的基带局域网规范标准,于1980年9月30日发布,是现有局域网所采用最通用的通信协议标准,通过电缆传输和接收数据。
以太网用于创建局域网并连接多台计算机或其他设备(如打印机、扫描仪等),在有线网络中通过光纤电缆完成,在无线网络中通过无线网络技术完成。
目前由IEEE主导的IEEE 802.3已发布100GE、200GE、400GE的以太网接口标准,常用的网络类型有以下几种

网络名称IEEE标准传输速率网络类型
Ethernet802.310 Mbps10Base-T
Fast Ethernet802.3u100 Mbps100Base-TX
100Base-FX
Gigabit Ethernet802.3z1000 Mbps1000Base-T
1000Base-SX
1000Base-LX
10 Gigabit EthernetIEEE 802.3ae10 Gbps10GBase-SR
10GBase-LX4
10GBase-LR/ER
10GBase-SW/LW/EW

二、部署实践(以太网)

1、Intel E810-XXVDA2

1.1、网卡信息

网卡介绍:英特尔® 以太网网络适配器 E810-XXVDA2

  • 网卡端口:双口(Dual-Port)
  • 网卡速率:25/10/1GbE
  • PCIe版本:16 GT/s(PCIe 4.0)
  • 插槽宽度:x8 lanes
  • 网卡控制器:Intel Ethernet Controller E810
  • 网卡驱动:ice
1.2、检查命令
  • 查看当前PCIe网卡列表:lspci | grep Eth
[root@node155 ~]# lspci | grep Eth
18:00.0 Ethernet controller: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection (rev 01)
18:00.1 Ethernet controller: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection (rev 01)
60:00.0 Ethernet controller: Intel Corporation Ethernet Connection X722 for 1GbE (rev 09)
60:00.1 Ethernet controller: Intel Corporation Ethernet Connection X722 for 1GbE (rev 09)
61:00.0 Ethernet controller: Intel Corporation Device 159b (rev 02)
61:00.1 Ethernet controller: Intel Corporation Device 159b (rev 02)
  • 查看当前PCIe网卡产品型号:lspci -vvv -s <pci-device-num> | grep "Product Name"
[root@node155 ~]# lspci -vvv -s 61:00.0 | grep "Product Name"Product Name: Intel(R) Ethernet Network Adapter E810-XXVDA2
  • 查看当前PCIe网卡速率:lspci -vvv -s<pci-device-num> | grep -E '(LnkCap:|LnkSta:)'
    注:LnkCap表示网卡理论的传输速率,LnkSta表示网卡实际的传输速率,当出现LnkSta < LnkCap情况时,网卡速率会大幅下降,通常为服务器PCIe插槽和网卡存在兼容性问题,尝试更换网卡或PCIe插槽解决
[root@node8 ~]# lspci -vvv -s 61:00.0 | grep -E '(LnkCap:|LnkSta:)'LnkCap: Port #0, Speed 16GT/s, Width x8, ASPM not supported, Exit Latency L0s unlimited, L1 <4usLnkSta: Speed 8GT/s, Width x4, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
1.2、驱动编译

驱动下载:Intel® Network Adapter Driver for E810 Series Devices under Linux*

  • 下载驱动程序(下载地址:适用于 Linux* 下的 E810 系列装置的 Intel® 网络适配器驱动程序)
wget https://downloadmirror.intel.com/789309/ice-1.12.7.tar.gz
  • 源码编译安装,加载ice网卡驱动模块
tar -zxvf ice-1.12.7.tar.gz
cd ice-1.12.7/src/
make install
modprobe ice
  • 查看网卡速率信息
[root@node8 src]# ethtool enp97s0f0
Settings for enp97s0f0:Supported ports: [ FIBRE ]Supported link modes:   1000baseT/Full25000baseCR/Full25000baseSR/Full1000baseX/Full10000baseCR/Full10000baseSR/Full10000baseLR/FullSupported pause frame use: SymmetricSupports auto-negotiation: NoSupported FEC modes: NoneAdvertised link modes:  25000baseSR/Full10000baseSR/FullAdvertised pause frame use: NoAdvertised auto-negotiation: NoAdvertised FEC modes: None BaseR RSSpeed: 25000Mb/sDuplex: FullPort: FIBREPHYAD: 0Transceiver: internalAuto-negotiation: offSupports Wake-on: dWake-on: dCurrent message level: 0x00000007 (7)drv probe linkLink detected: yes

2、Mellanox MCX456A-ECAT [ConnectX-4]

环境信息
100G双口网卡 Mellanox MCX456A-ECAT
100G以太网DAC线缆(3米) Mellanox MCP1600-C003

2.1、网卡信息

NVIDIA ConnectX InfiniBand网卡介绍
NVIDIA ConnectX-4 InfiniBand/Ethernet Adapter Cards User Manual

  • 网卡端口:双口(Dual-port QSFP28)
  • 网卡速率:InfiniBand: SDR/DDR/QDR/FDR/EDREthernet: 10/25/40/50/100 Gb/s
  • PCIe版本:8.0GT/s(PCIe 3.0)
  • 插槽宽度:x16 lanes
  • 网卡驱动:mlx5_core
1.2、检查命令
  • 查看当前PCIe网卡列表:lspci | grep Eth
[root@node176 ~]# lspci | grep Eth
0000:01:00.0 Ethernet controller: Mellanox Technologies MT27700 Family [ConnectX-4]
0000:01:00.1 Ethernet controller: Mellanox Technologies MT27700 Family [ConnectX-4]
0001:06:00.0 Ethernet controller: Beijing Wangxun Technology Co., Ltd. WX1860A2 Gigabit Ethernet Controller (rev 01)
0001:06:00.1 Ethernet controller: Beijing Wangxun Technology Co., Ltd. WX1860A2 Gigabit Ethernet Controller (rev 01)
  • 查看当前PCIe网卡速率:lspci -vvv -s<pci-device-num> | grep -E '(LnkCap:|LnkSta:)'
    注:LnkCap表示网卡理论的传输速率,LnkSta表示网卡实际的传输速率,当出现LnkSta < LnkCap情况时,网卡速率会大幅下降,通常为服务器PCIe插槽和网卡存在兼容性问题,尝试更换网卡或PCIe插槽解决
[root@node176 ~]# lspci -vvv -s 0000:01:00.0 | grep -E '(LnkCap:|LnkSta:)'LnkCap: Port #0, Speed 8GT/s, Width x16, ASPM not supportedLnkSta: Speed 8GT/s, Width x16
1.2、驱动安装

驱动下载:Intel® Network Adapter Driver for E810 Series Devices under Linux*

  • 根据当前操作系统版本及硬件架构,选择下载对应驱动软件包(MLNX_OFED_LINUX-5.8-4.1.5.0-rhel8.2-aarch64.tgz)

在这里插入图片描述

  • 对于主流发行系统版本,在不升级默认内核版本情况下,mlnx_ofed提供了预构建RPM包,直接执行驱动软件安装即可
tar -zxvf MLNX_OFED_LINUX-5.8-4.1.5.0-rhel8.2-aarch64.tgz
cd MLNX_OFED_LINUX-5.8-4.1.5.0-rhel8.2-aarch64/
./mlnxofedinstall

相关文章:

【硬件相关】IB网/以太网基础介绍及部署实践

文章目录 一、前言1、Infiniband网络1.1、网络类型1.2、网络拓扑1.3、硬件设备1.3.1、网卡1.3.2、连接线缆a、光模块b、线缆 1.3.4、交换机 2、Ethernet网络 二、部署实践&#xff08;以太网&#xff09;1、Intel E810-XXVDA21.1、网卡信息1.2、检查命令1.2、驱动编译 2、Mella…...

【JavaEE】_Spring MVC项目之建立连接

目录 1. Spring MVC程序编写流程 2. 建立连接 2.1 RequestMapping注解介绍 2.2 RequestMapping注解使用 2.2.1 仅修饰方法 2.2.2 修饰类与方法 2.3 关于POST请求与GET请求 2.3.1 GET请求 2.3.2 POST请求 2.3.3 限制请求方法 1. Spring MVC程序编写流程 1. 建立连接&…...

【JavaEE进阶】 Spring AOP源码简单剖析

文章目录 &#x1f343;前言&#x1f340;Spring AOP源码剖析⭕总结 &#x1f343;前言 前面的博客中&#xff0c;博主对代理模式进行了一个简单的讲解&#xff0c;接下来博主将对Spring AOP源码进行简单剖析&#xff0c;使我们对Spring AOP了解的更加深刻。 &#x1f340;Sp…...

Redis--内存回收机制详解

什么是内存回收机制? 众所周知Redis之所以性能高是因为数据都存在内存中&#xff0c;内存是很宝贵的&#xff0c;Redis的内存回收机制本质就是处理达到过期时间的key-value&#xff0c;以及当内存到达最大使用值时候触发的内存淘汰策略。 Redis数据删除的策略有哪些&#xf…...

win安装卸载python3.13

一、安装 访问python官网&#xff1a;https://www.python.org/ 点击“Downloads” 点击“Windows” 找到自己要下载的版本和位数&#xff0c;比如我这个是3.13版本、64位的安装包 下载好了之后&#xff0c;双击安装包 勾选“Add python.exe to PATH”&#xff1a;把python环…...

APIFox-自动获取登录状态操作

APIFox-自动获取登录状态操作 概述 作为纯后端开发码农&#xff0c;每次接口开发完的调试很重要&#xff0c;因此每次重复的手动获取登陆状态Token或者直接放行就太麻烦了。 APIFox提供了前置操作&#xff0c;可以很方便的自动获取登录状态&#xff0c;节省大量重复劳动时间。…...

【NDK系列】Android tombstone文件分析

文件位置 data/tombstone/tombstone_xx.txt 获取tombstone文件命令&#xff1a; adb shell cp /data/tombstones ./tombstones 触发时机 NDK程序在发生崩溃时&#xff0c;它会在路径/data/tombstones/下产生导致程序crash的文件tombstone_xx&#xff0c;记录了死亡了进程的…...

CentOS7 Hive2.3.8安装

CentOS7 Hive2.3.8 安装 建议从头用我的博客&#xff0c;如果用外教的文件到 一、9)步骤了&#xff0c;就用他的弄完&#xff0c;数据库不一样&#xff0c;在9步骤前还能继续看我的 一、 安装MySQL 0.0&#xff09;查询mariadb,有就去0.1&#xff09;&#xff0c;没有就不管…...

代码随想录算法训练营第四十四天 完全背包 、零钱兑换 II 、组合总和 Ⅳ

代码随想录算法训练营第四十四天 | 完全背包 、零钱兑换 II 、组合总和 Ⅳ 完全背包 题目链接&#xff1a;题目页面 (kamacoder.com) 解释一、01背包 一维 &#xff1a;为什么要倒序遍历背包&#xff1f; 首先要明白二维数组的递推过程&#xff0c;然后才能看懂二维变一维的…...

【经验】vscode 鼠标拖曳不能选中整行文字,只能选中纵向矩形范围

1、问题描述 不知道昨天操作vscode设置界面时&#xff0c;误选择了啥&#xff0c;导致鼠标拖曳不能选中整行文字&#xff0c;只能选中纵向矩形范围&#xff0c;现象如下&#xff1a; 2、解决方法 1&#xff09;打开设置界面 点击左下角按键&#xff0c;选择“设置” 2&…...

Redis--事务机制的详解及应用

Redis事务的概念&#xff1a; Redis事务就是将一系列命令包装成一个队列&#xff0c;在执行时候按照添加的顺序依次执行&#xff0c;中间不会被打断或者干扰&#xff0c;在执行事务中&#xff0c;其他客户端提交的命令不可以插入到执行事务的队列中&#xff0c;简单来说Redis事…...

路由器端口映射如何配置?

在网络通信中&#xff0c;路由器是一个重要的设备&#xff0c;它负责将数据包从一个网络传输到另一个网络。路由器的端口映射配置是一种重要的设置&#xff0c;可以使外部网络中的计算机通过访问路由器上的特定端口与内部网络中的计算机进行通信。本文将介绍什么是路由器端口映…...

力扣34. 在排序数组中查找元素的第一个和最后一个位置(二分查找)

Problem: 34. 在排序数组中查找元素的第一个和最后一个位置 文章目录 题目描述思路复杂度Code 题目描述 思路 Problem: 二分查找常用解题模板&#xff08;带一道leetcode题目&#xff09; 直接套用上述中的寻找左、右边界的二分查找模板即可 复杂度 时间复杂度: O ( l o g n )…...

【每日一题】3.2 求逆序对

题目描述 给定一个长度为 n的整数数列&#xff0c;请你计算数列中的逆序对的数量。 逆序对的定义如下&#xff1a;对于数列的第 i个和第 j个元素&#xff0c;如果满足 i<j 且 a[i]>a[j]&#xff0c;则其为一个逆序对&#xff1b;否则不是。 输入格式 第一行包含整数 n…...

NTP时间源服务器(NTP网络时钟)助力智慧医院数字化

NTP时间源服务器&#xff08;NTP网络时钟&#xff09;助力智慧医院数字化 NTP时间源服务器&#xff08;NTP网络时钟&#xff09;助力智慧医院数字化 目前计算机网络中各主机和服务器等网络设备的时间基本处于无序的状态。 随着计算机网络应用的不断涌现&#xff0c;计算机的时…...

Benchmark学习笔记

小记一篇Benchmark的学习笔记 1.什么是benchmark 在维基百科中&#xff0c;是这样子讲的 “As computer architecture advanced, it became more difficult to compare the performance of various computer systems simply by looking at their specifications.Therefore, te…...

Linux中的动静态库

目录 一、静态库 &#xff08;1&#xff09;静态库的优缺点&#xff1a; &#xff08;2&#xff09;Linux下静态库的创建和执行 1.直接编译​编辑 2.指定路径和库名 3.用LIBRARY_PATH环境变量来配置路径 二、动态库 &#xff08;1&#xff09;动态库的优缺点 &#xff…...

C/C++基础语法

C/C基础语法 文章目录 C/C基础语法头文件经典问题链表链表基础操作 秒数转换闰年斐波那契数列打印n阶菱形曼哈顿距离菱形图案的定义大数计算 输入输出格式化输入输出getline()函数解决cin只读入一个单词的问题fgets读入整行输出字符数组&#xff08;两种方式puts和printf&#…...

Home Assistant:基于Python的智能家居开源系统详解

Home Assistant&#xff1a;基于Python的智能家居开源系统详解 在数字化和智能化的时代&#xff0c;智能家居系统成为了现代家庭的新宠。它们能够让我们更加方便地控制家中的各种设备&#xff0c;实现自动化和个性化的居住体验。其中&#xff0c;Home Assistant作为一款基于Pyt…...

使用vscode进行简单的多文件编译

安装好必要的插件后&#xff08;如C/C&#xff0c;code runner等&#xff09;默认生成task.json即可进行单文件运行 涉及到多文件情况可以修改task.json如下&#xff1a; {"version": "2.0.0","tasks": [{"type": "cppbuild&quo…...

基于算法竞赛的c++编程(28)结构体的进阶应用

结构体的嵌套与复杂数据组织 在C中&#xff0c;结构体可以嵌套使用&#xff0c;形成更复杂的数据结构。例如&#xff0c;可以通过嵌套结构体描述多层级数据关系&#xff1a; struct Address {string city;string street;int zipCode; };struct Employee {string name;int id;…...

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…...

多云管理“拦路虎”:深入解析网络互联、身份同步与成本可视化的技术复杂度​

一、引言&#xff1a;多云环境的技术复杂性本质​​ 企业采用多云策略已从技术选型升维至生存刚需。当业务系统分散部署在多个云平台时&#xff0c;​​基础设施的技术债呈现指数级积累​​。网络连接、身份认证、成本管理这三大核心挑战相互嵌套&#xff1a;跨云网络构建数据…...

Chapter03-Authentication vulnerabilities

文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...

微信小程序之bind和catch

这两个呢&#xff0c;都是绑定事件用的&#xff0c;具体使用有些小区别。 官方文档&#xff1a; 事件冒泡处理不同 bind&#xff1a;绑定的事件会向上冒泡&#xff0c;即触发当前组件的事件后&#xff0c;还会继续触发父组件的相同事件。例如&#xff0c;有一个子视图绑定了b…...

黑马Mybatis

Mybatis 表现层&#xff1a;页面展示 业务层&#xff1a;逻辑处理 持久层&#xff1a;持久数据化保存 在这里插入图片描述 Mybatis快速入门 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/6501c2109c4442118ceb6014725e48e4.png //logback.xml <?xml ver…...

vscode(仍待补充)

写于2025 6.9 主包将加入vscode这个更权威的圈子 vscode的基本使用 侧边栏 vscode还能连接ssh&#xff1f; debug时使用的launch文件 1.task.json {"tasks": [{"type": "cppbuild","label": "C/C: gcc.exe 生成活动文件"…...

Ubuntu Cursor升级成v1.0

0. 当前版本低 使用当前 Cursor v0.50时 GitHub Copilot Chat 打不开&#xff0c;快捷键也不好用&#xff0c;当看到 Cursor 升级后&#xff0c;还是蛮高兴的 1. 下载 Cursor 下载地址&#xff1a;https://www.cursor.com/cn/downloads 点击下载 Linux (x64) &#xff0c;…...

HybridVLA——让单一LLM同时具备扩散和自回归动作预测能力:训练时既扩散也回归,但推理时则扩散

前言 如上一篇文章《dexcap升级版之DexWild》中的前言部分所说&#xff0c;在叠衣服的过程中&#xff0c;我会带着团队对比各种模型、方法、策略&#xff0c;毕竟针对各个场景始终寻找更优的解决方案&#xff0c;是我个人和我司「七月在线」的职责之一 且个人认为&#xff0c…...

小木的算法日记-多叉树的递归/层序遍历

&#x1f332; 从二叉树到森林&#xff1a;一文彻底搞懂多叉树遍历的艺术 &#x1f680; 引言 你好&#xff0c;未来的算法大神&#xff01; 在数据结构的世界里&#xff0c;“树”无疑是最核心、最迷人的概念之一。我们中的大多数人都是从 二叉树 开始入门的&#xff0c;它…...