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

Peter算法小课堂—树的应用

开篇先给大家讲个东西,叫vector,有老师称之为“向量”,当然与数学中的向量不一样啊,所以我要称之为“长度可变的数组”

vector

头文件:#include <vector>

用法:vector<int> d;

尾部增加元素:d.push_back(……);

元素个数:d.size()

数组方括号操作:d[i]

尾部删除元素:d.pop_back(……);

清空数组:d.clear();

树 

树的概念:c++ 图论-CSDN博客

一般,树的表示用邻接表来表示,表达形式是vector<int> to[N];

那邻接表加边呢?如下

void add(int u,int v){to[u].push_back(v);to[v].push_back(u);
}

邻接表输出呢?

for(int u=1;u<=n;u++,cout<<endl)for(int i=0;i<to[u].size();i++)cout<<to[u][i];

输入所有边的端点呢?

void input(){cin>>n;for(int i=1;i<=u-1;i++){int u,v;cin>>u>>v;add(u,v);}
}

输入父节点呢?

void input(){cin>>n;for(int u=2;u<=n;u++){cin>>p[u];add(u,p[u]);}
}

输入儿子节点呢?

void input(){cin>>n;int c,v;for(int u=1;u<=n;u++){cin>>c;for(int i=0;i<c;i++){cin>>v;add(u,v);}}
}

dfs会吗?解决。1645题尝试一下,下一篇发题解

http://www.lryc.cn/news/275154.html

相关文章:

  • FineBI:简介
  • 原神单机版【完全无脑搭建】⭐纯单机⭐*稳定版*
  • 用通俗易懂的方式讲解:万字长文带你入门大模型
  • Invalid options in vue.config.js: “plugins“ is not allowed
  • 四、C语言中的数组:数组的创建与初始化
  • html5中各标签的语法格式总结以及属性值说明
  • 力扣(leetcode)第412题Fizz Buzz(Python)
  • 苦学golang半年,写了一款web服务器
  • uniapp vue2 车牌号输入组件记录
  • Unity 点击对话系统(含Demo)
  • vue接入高德地图
  • Linux的基本指令(5)
  • 华为商城秒杀时加密验证 device_data 的算法研究
  • Wrk压测发送Post请求的正确姿势
  • 【管理篇 / 登录】❀ 06. macOS下使用USB配置线登录 ❀ FortiGate 防火墙
  • linux系统shell语言的自动化交互
  • HarmonyOS ArkTS 三方库的基本使用(十六)
  • Spring boot封装rocket mq 教程
  • Java Swing手搓童年坦克大战游戏(I)
  • 【DevOps-04]】Operate阶段工具
  • 力扣2807.在链表中插入最大公约数
  • 开始刷Leetcode之前你需要知道的 - The basic is all you need
  • 【PostgreSQL】模式Schema
  • JavaScript实现的复杂功能:自动生成带水印的图片
  • 图神经网络|8.2 图卷积的计算基本方法
  • equals()与hashCode()方法详解
  • 六、基于Flask、Flasgger、marshmallow的开发调试
  • TypeScript 从入门到进阶之基础篇(三) 元组类型篇
  • 现代CPU的多种运行模式
  • Python PDF处理模块pypdf库详解