树的基础代码

每一个结点一个数组,所有结点又构成一个数组,即二维。

结点的数组保存的是与这个结点相邻的所有点的编号。

vector<int>G[maxn];  //(maxn为点的总个数)
void read_tree()
{
    int u,v;
    scanf("%d",&n);
    for(int i=0;i<n-1;i++)
    {
        scanf("%d%d",&u,&v);//(u与v之间有边)
        G[u].push_back(u);
        G[v].push_back(v);
    }
}

把上面的矩阵关系转化为一颗树(主要增加谁是根的问题)

void dfs(int u,int fa)
{
    int d=G[u].size();
    for(int i=0;i<d;i++)
    {
        int v=G[u][i];
        if(v!=fa)
            dfs(v,p[v]=u);
    }
}
p[i]=i的父结点的编号;
调用:dfs(root,-1);

原文地址:https://www.cnblogs.com/larvie/p/9535201.html

时间: 2024-10-10 13:31:45

树的基础代码的相关文章

[转帖]AST抽象语法树——最基础的javascript重点知识,99%的人根本不了解

AST抽象语法树——最基础的javascript重点知识,99%的人根本不了解 https://segmentfault.com/a/1190000016231512 太长没看完.. javascriptvue-clicommonjswebpackast 阅读约 27 分钟 抽象语法树(AST),是一个非常基础而重要的知识点,但国内的文档却几乎一片空白. 本文将带大家从底层了解AST,并且通过发布一个小型前端工具,来带大家了解AST的强大功能 Javascript就像一台精妙运作的机器,我们可以

AST抽象语法树——最基础的javascript重点知识,99%的人根本不了解

AST抽象语法树——最基础的javascript重点知识,99%的人根本不了解 javascriptvue-clicommonjswebpackast 阅读约 27 分钟 抽象语法树(AST),是一个非常基础而重要的知识点,但国内的文档却几乎一片空白. 本文将带大家从底层了解AST,并且通过发布一个小型前端工具,来带大家了解AST的强大功能 Javascript就像一台精妙运作的机器,我们可以用它来完成一切天马行空的构思. 我们对javascript生态了如指掌,却常忽视javascript本身

树的基础

一.树的介绍 1.树的定义 树是一种数据结构,它是由n(n>=1)个有限节点组成一个具有层次关系的集合. 把它叫做"树"是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的.它具有以下的特点: (01) 每个节点有零个或多个子节点: (02) 没有父节点的节点称为根节点: (03) 每一个非根节点有且只有一个父节点: (04) 除了根节点外,每个子节点可以分为多个不相交的子树. 2.树的基本术语 若一个结点有子树,那么该结点称为子树根的"双亲",子树的

HDU1166 线段树(最基础题)

1.写法一: 1 #include <iostream> 2 #include <string.h> 3 #include <stdio.h> 4 5 using namespace std; 6 7 int numv[50005<<2]; 8 int A[50005]; 9 10 void builtTree(int o,int l,int r){ 11 if(l==r) { 12 numv[o]=A[l]; 13 return ; 14 } 15 int

java:Spring框架1(基本配置,简单基础代码实现)

1.基本配置: 步骤一:新建项目并添加spring依赖的jar文件和commons-logging.xx.jar: 步骤二:编写实体类,DAO及其实现类,Service及其实现类; 步骤三:在src下新建配置文件applicationContext.xml,并配置bean节点和property: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springfr

编程算法 - 后缀树(Suffix Tree) 代码(C)

后缀树(Suffix Tree) 代码(C) 本文地址: http://blog.csdn.net/caroline_wendy 给你一个长字符串s与很多短字符串集合{T1,, T2, ...}, 设计一个方法在s中查询T1, T2, ..., 要求找出Ti在s中的位置. 代码: /* * main.cpp * * Created on: 2014.7.20 * Author: Spike */ /*eclipse cdt, gcc 4.8.1*/ #include <iostream> #i

Mysql基础代码(不断完善中)

Mysql基础代码,不断完善中~ 1 //语法错误(syntax error)在语法分析阶段,源代码并未被执行,故不会有任何输出. 2 3 4 /* [命名规则] */ 5 常量名 类常量建议全大写,单词间用下划线分隔 // MIN_WIDTH 6 变量名建议用下划线方式分隔 // $var_name 7 函数名建议用驼峰命名法 // varName 8 定界符建议全大写 // <<<DING, <<<'DING' 9 文件名建议全小写和下划线.数字 // func_n

MyERP WinForm 快速开发框架——基础代码(数据字典)

框架的基础代码功能可以提供备选列表,作为数据字典使用 基础代码分为两种 手动输入.Sql动态 可以绑定到 ButtonEdit ComboBoxEdit LookUpEdit CheckedComboBoxEdit 作为数据源使用

[51单片机] HC-SR04超声波测距仪 基础代码

>_<:超声波测距仪模块: >_<:51单片机,11.0592MHz晶振,将采集数据发送到串口的基础例子: >_<:代码: 1 /***********************************************************************************************************/ 2 //HC-SR04 超声波测距模块 DEMO 程序 3 //晶振:11.0592 4 //接线:模块TRIG接 P1.2