【弱鸡的建树以后还要更新】
邻接矩阵:
——————二叉树
void maketree(int v)//v代表根
{
int lr=0;//lr代表是左还是右 lr==1代表左 lr==2代表右
for(int i=0;i<=n;i++)
{
if(map[v][i]>=0)//map里存储的是边之间的关系
{
lr++;
tree[x][lor]=y; //邻接矩阵存储树的关系 tree[i][j] 表示根为i的左支/右支
map[x][y]=-1;//删除map数组中这一对边的关系
map[y][x]=-1;//无向图 两边都得删除
maketree(y);//递归
if(lr==2) return ; //枝杈满了就回溯
}
}
}
邻接表:
跟存图一个存法
struct qaq
{
int y,next;
}e[2*N];
int lin[N],len=0;
void insert(int xx,int yy)
{
e[++len].y=yy;
e[len].next=lin[xx];
lin[xx]=len;
}