链式前向星

 链表前插法

在链表的头部插入元素

e.g.

head指向链表元素第一个地址

如数列 1,2,3,4

1. head->NULL                                          初始状态无元素,表示为NULL

2. head->1->NULL                                      

3. head->2->1->NULL 

4. head->3->2->1->NULL

5. head->4->3->2->1->NULL

代码写法

用ver数组保存元素的值,nxt数组保存元素的下标

int head,ver[N],nxt[N],tot;
void add(int x) {  
    ver[tot]=x;
    nxt[tot]=head;
    head=tot;
    tot++;
}

链式前向星 

图解:

数组代码:

int head[N],ver[N],nxt[N],w[N],tot; 
void add(int x,int y,int w){  
    ver[tot]=y;
    w[tot]=w;
    nxt[tot]=head[x];
    head[x]=tot;
    tot++;
}
for(int i=1;i<=n;i++){
    for(int j=head[i];j!=-1;j=nex[i]){
        cout<<i<<" "<<ver[j]<<" "<<w[j]<<endl;
    }
}

vector 数组

vector<vector<int> >e(1000);
   int a,b,c;
   cin>>a>>b>>c;
   e[a].push_back(make_pair(b,c));
for(int i=1;i<=n;i++){
    for(int j=0;j<e[i].size();j++){
        cout<<i<<" "<<e[i][j].first<<" "<<e[i][j].second<<endl;
    }
}

树的重心的性质

1.树中所有点到某个点的距离和中,到重心的距离和是最小的,如果有两个重心,他们的距离和一样。

2.把两棵树通过一条边相连,新的树的重心在原来两棵树重心的连线上。

3.一棵树添加或者删除一个节点,树的重心最多只移动一条边的位置。

4.一棵树最多有两个重心,且相邻。

  • 11
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值