存图方式

3 篇文章 0 订阅
2 篇文章 0 订阅

1 邻接矩阵  即 用一个二维数组来存储  但是这样太浪费空间了  所以限制挺大 

int q[1000][1000];//这种 用二维数组分别表示谁 和指向谁  限制是如果点n过多就会超过内存限制

2 邻接表  用一个vector数组来存比邻接矩阵稍微好点

vector <int,int> q[1000];//往一条边的起始点对应的v[i]里push 会比二位数组好点但也可能出现问题

3 链式前向星  用一个结构体数组来存储

struct qwe{
int flag;//上一个在哪
int next;//指向谁
int val;//长度
}q[1000];//这里的值是有多少条边
int head[1000];//这里的是有多少个点 head存的是哪个开始  初始化的值都是-1
int cnt=0;//这里记得是有多少点存了起来
int build_h(int a,int b,int v){ //a传得是起始点 b传得是终止点 v是长度
    q[cnt].next=b;
    q[cnt].val=v;
    q[cnt].flag=head[a];
    head[a]=cnt++;
}//这样的话  存的就是边
int querty(int a){
//举个便利a点相连的所有点
    int i;
    for(i=head[a];i!=-1;i=q[i].flag)
    {
        q[i].next//a点指向哪个点
        q[i].val;//a点到q[i].next这个的长度
    }
}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值