邻接表

6 篇文章 0 订阅
3 篇文章 0 订阅

邻接表

#include <stdio.h>  
#include <string.h>  
  
#define CLR(arr,val) memset(arr,val,sizeof(arr))  
  
#define Max_n 100005  
#define Max_e 10005  
  
struct Vertex  
{  
    int head;    //head记录某点的的信息,即从E中的哪个下标开始  
}V[Max_n];  
  
struct Edge  
{  
    int v,w;     //v表示连接点的编号,w表示此边的权值  
    int next;    //next负责连接和此点相关的边  
}E[Max_e];  
  
int top;         //top记录已用E的个数,且保证每个E独立  
  
void Init()  
{  
    top = 0;  
    CLR(V,-1);  
}  
  
void Add_edge(int u,int v,int w)    //演示如何添加边  
{  
    E[top].v = v;  
    E[top].w = w;  
    E[top].next = V[u].head;  //链表的头插法  
    V[u].head = top++;        //链表的头指针改为此边编号  
}  
  
void dfs(int x)                     //演示如何遍历  
{  
    for(int i = V[x].head; i != -1;i = E[i].next)//i为边在E中的编号  
    {  
        int v = E[i].v;  
        int w = E[i].w;  
    }  
}  


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值