链式前向星实现树的存储(孩⼦表示法)c++

embedded/2025/1/24 13:08:39/

名字看起来花⾥胡哨的,但是不要被唬到

链式前向星的本质就是⽤链表存储所有的孩⼦,其中链表是⽤数组模拟实现的

  1. 创建⼀个⾜够⼤的数组h,作为所有结点的哨兵位;
  2. 创建两个⾜够⼤的数组e和ne,⼀个作为数据域,⼀个作为指针域;
  3. ⼀个变量id,标记新来结点存储的位置

当x有⼀个孩⼦y的时候,就把y头插到x的链表中

id++; e[id] = y; ne[id] = h[x]; h[x] = id;

注意:头结点h这⾥的数组⼤⼩可以为N,但是e和ne这两个数组我们要开辟之前的两倍才⾏,因为我们要存边存的是之前的两倍的

#include <iostream>
using namespace std;const int N = 1e5 + 10;
//链式前向星
int h[N], e[N * 2], ne[N * 2], id;
int n;//其实就是把b头插到a所在的链表后面
void add(int a, int b)
{++id;e[id] = b;ne[id] = h[a];h[a] = id;
}
int main()
{cin >> n;for (int i = 1; i <= n; ++i){int a, b; cin >> a >> b;//a和b之间有一条边,a有一个孩子b,b有一个孩子aadd(a, b); add(b, a);}return 0;
}


http://www.ppmy.cn/embedded/156574.html

相关文章

使用scikit-learn中的KNN包实现对鸢尾花数据集或者自定义数据集的的预测。

1、导入需要的包 # 导入鸢尾花数据集 from sklearn.datasets import load_iris # 数据可视化包 import pandas as pd from sklearn.model_selection import train_test_split from sklearn.preprocessing import MinMaxScaler, StandardScaler from sklearn.neighbors import …

2024年度总结:做一个持续精进的人

文章目录 引言深圳三年&#xff1a;挑战与收获博客与我&#xff1a;记录与思考总结&#xff1a;感恩与前行 引言 时间如白驹过隙&#xff0c;再次提起这句话&#xff0c;已然和之前在学校时的份量不太一样了。也不知道是不是身在深圳的缘由&#xff0c;深圳作为一个超一线城市…

使用LabVIEW的History功能实现队列数据的读取而不清空

在LabVIEW中&#xff0c;有多种方法可以读取队列中的数据而不清空它。使用 Dequeue Element 和 Enqueue Element 函数可以实现读取并重新插入数据回队列&#xff0c;但当需要处理大数据流或需要更动态的解决方案时&#xff0c;这种方法可能会变得繁琐。一个更高效的解决方案是利…

【Vim Masterclass 笔记24】S10L43 + L44:同步练习10 —— 基于 Vim 缓冲区的各类基础操作练习(含点评课)

文章目录 S10L43 Exercise 12 - Vim Buffers1 训练目标2 操作指令2.1. 打开 buf* 文件2.2. 查看缓冲区 View the buffers2.3. 切换缓冲区 Switch buffers2.4. 同时编辑多个缓冲区 Edit multiple buffers at once2.5. 缓冲区的增删操作 Add and delete buffers2.6. 练习 Vim 内置…

【C++】详细讲解继承(上)

C面向对象的三大特性&#xff1a;封装&#xff0c;继承&#xff0c;多态。现在我们就介绍一下继承。 1.继承的概念及定义 1.1 继承的概念 继承机制是⾯向对象程序设计使代码可以 复⽤ 的最重要的⼿段。我们前面接触到的都是 函数 层次的复用&#xff0c;遇到过的 类 层次的复…

数学建模论文通用模板(细节方法二)

前面我们大概说了一些数学建模论文写作的重点&#xff0c;现在来更加细致的说明一下。 教会你各类竞赛数学建模论文写作&#xff08;通用模板&#xff09;-CSDN博客&#xff08;这是细节方法一&#xff09; 首先&#xff0c;在说明之前&#xff0c;还是那句话…

chrome游览器JSON Formatter插件无效问题排查,FastJsonHttpMessageConverter导致Content-Type返回不正确

问题描述 chrome游览器又一款JSON插件叫JSON Formatter&#xff0c;游览器GET请求调用接口时&#xff0c;如果返回的数据是json格式&#xff0c;则会自动格式化展示&#xff0c;类似这样&#xff1a; 但是今天突然发现怎么也格式化不了&#xff0c;打开一个json文件倒是可以格…

EMS从0到1之BMS介绍

BMS介绍 写在前面BMS是什么BMS能做些什么BMS有什么作用写在结尾 写在前面 众所周知&#xff0c;BMS作为储能系统3S&#xff0c;是储能系统的重要组成部分&#xff0c;虽然我们不开发BMS&#xff0c;但作为EMS开发者我们必须了解BMS是什么&#xff0c;他能做些什么&#xff0c;…