首页 > 其他 > 详细

存树的几种方法

时间:2019-11-15 18:31:10      阅读:92      评论:0      收藏:0      [点我收藏+]

1:数组存二叉树

#define lc(x) (x<<1)

#define rc(x) ((x<<1)|1)

#define fa(x) (x>>1)

未测试待续版

2:邻接矩阵存树

int a[n][n]

3:邻接表存树

(1)

struct node{
int data,lenn;
friend bool operator <(node a,node b)
{
return a.lenn>b.lenn;
}
};
node make_node(int a,int b)
{
node lss;
lss.data=b,lss.lenn=a;
return lss;
}
struct edge{
int t,l,n;
edge(){
}
edge(int _t,int _l,int _n)
{
t=_t,l=_l,n=_n;
}
};
edge e[200005<<1];
int head[100004],now=0;
void addedge(int ff,int tt,int ll)
{
e[now]=edge(tt,ll,head[ff]);
head[ff]=now++;
}

(2)

vector<int> vec[n];

 

存树的几种方法

原文:https://www.cnblogs.com/zyfltyyz/p/11715382.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!