图的建立与遍历的基础模板

写在前面

今天突然心血来潮翻看了某巨巨从acm刚入坑时到现在写的博客,发现她当时比我现在青涩多了。其实没有什么天才,大家都是这样一步一步走过来的,慢慢的花时间,从弱鸡变成大神。

说正事吧

今天学了图论基础,看了一会巨巨给的模板感觉挺不错,也比较好理解。先把图的插入的模板拿出来吧,代码注释写得很清楚啦。

typedef struct A
{
    int t, next; //t是指给出的此条边中被指向的点(一般转换为1,2,3表示),
                //next是此被指向点(y)所新连接的一条链上的点
}edge[max_size];//edge[i]用来存储每条给出的边的信息

int head[max_size];//head[x]数组是指某起始点(x)所存储的直接相连边的序号
int m; //m代表边的序号


//插入操作每次都会把一个新点更新成起始点的直接指向点
void insert(int x, int y)//x指向y
{
    edge[++m].t = y;
    edge[m].next = head[x];
    head[x] = m;
}

接下来是边的bfs与dfs操作:

直接先用ppt上面的吧,以后有时间会补上
图的建立与遍历的基础模板_第1张图片
图的建立与遍历的基础模板_第2张图片

你可能感兴趣的:(图论,acm)