树的基础代码
Posted larvie
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了树的基础代码相关的知识,希望对你有一定的参考价值。
每一个结点一个数组,所有结点又构成一个数组,即二维。
结点的数组保存的是与这个结点相邻的所有点的编号。
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);
以上是关于树的基础代码的主要内容,如果未能解决你的问题,请参考以下文章
Python数据结构系列☀️《树与二叉树-基础知识》——知识点讲解+代码实现☀️