存图方式---邻接表&邻接矩阵&前向星
基于vector存图
struct Edge
{
int u, v, w;
Edge(){}
Edge(int u, int v, int w):u(u), v(v), w(w){}
};
vector<Edge>edges;//把每一条边存下来
vector<int>Map[maxn];//G[i]这个vector存的是以i为起点的所有边在edges里面的下标
void init(int n)
{
for(int i = ; i <= n; i++)Map[i].clear();
edges.clear();
}
void addedge(int u, int v, int w)
{
edges.push_back(Edge(u, v, w));//注意无向图需要存两条边
m = edges.size();
Map[u].push_back(m - );
}
void Find(int u)//遍历以u为起点的所有边
{
for(int i = ; i < Map[u].size(); i++)
{
Edge&e = edges[Map[u][i]];
//使用e就可以遍历以u为起点的所有的边
}
}
用邻接矩阵的代码比较简单,就不加上来了
使用链表前向星存图
https://www.cnblogs.com/ECJTUACM-873284962/p/6905416.html
struct edge
{
int next;//指向下一个节点
int u, v, w;
};
edge a[maxn];
int head[maxn], node;//node记录节点的数目,head[i]记录连接着i的第一条边
void add(int u, int v, int w)
{
a[node].u = u;
a[node].v = v;
a[node].w = w;
a[node].next = head[u];
head[u] = node++;
}
void init()
{
node = ;
memset(head, -, sizeof(head));
}
void Find(int u)
{
for(int i = head[u]; i != -; i = a[i].next)
{
edge& e = a[i];
//e就是连接着u的所有边
}
}
存图方式---邻接表&邻接矩阵&前向星的更多相关文章
- 数据结构之---C语言实现图的邻接表存储表示
// 图的数组(邻接矩阵)存储表示 #include <stdio.h> #include <stdlib.h> #include <string.h> #defi ...
- c_数据结构_图_邻接表
课程设计------邻接表 图的遍历实现课程设计:https://files.cnblogs.com/files/Vera-y/图的遍历_课程设计.zip #include<stdio.h> ...
- 图的邻接表存储表示(C)
//---------图的邻接表存储表示------- #include<stdio.h> #include<stdlib.h> #define MAX_VERTEXT_NUM ...
- 图的邻接表存储 c实现
图的邻接表存储 c实现 (转载) 用到的数据结构是 一个是顶点表,包括顶点和指向下一个邻接点的指针 一个是边表, 数据结构跟顶点不同,存储的是顶点的序号,和指向下一个的指针 刚开始的时候把顶点表初始化 ...
- 基于visual Studio2013解决算法导论之053图的邻接表表示
题目 图的邻接表表示 解决代码及点评 // 图的邻接表表示.cpp : 定义控制台应用程序的入口点. // #include <iostream> #include <sta ...
- Count on a tree SPOJ 10628 主席树+LCA(树链剖分实现)(两种存图方式)
Count on a tree SPOJ 10628 主席树+LCA(树链剖分实现)(两种存图方式) 题外话,这是我第40篇随笔,纪念一下.<( ̄︶ ̄)↗[GO!] 题意 是说有棵树,每个节点上 ...
- JAVA实现图的邻接表以及DFS
一:定义邻接表结构储存图 package 图的遍历; //邻接表实现图的建立 //储存边 class EdgeNode { int index; // 习惯了用index,其实标准写法是(adjVer ...
- HDU1532_Drainage Ditches(网络流/EK模板/Dinic模板(邻接矩阵/前向星))
Drainage Ditches Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- 图 邻接表 邻接矩阵 BFS生成树 DFS生成树
随机推荐
- 01-Python的介绍_Python编程之路
首先用一句业内非常出名的话来介绍Python "人生哭短,我用Python" 这也是Python宣传时经常说的一句话 从这句话中,可以非常清楚Python他到底优点在哪里,为什么要 ...
- NVL2 这个函数,
NVL2(expr1,expr2,expr3) 如果参数表达式expr1值为NULL,则NVL2()函数返回参数表达式expr3的值:如果参数表达式expr1值不为NULL,则NVL2()函数 ...
- 【Alpha版本】冲刺阶段 - Day2 - 漂流
今日进展 袁逸灏:实现车辆的子弹发射(3.5h) 启动类,子弹类(修改类),游戏画面类(修改类) 刘伟康:继续借鉴其他 alpha 冲刺博客,初步了解墨刀.leangoo等工具(2h) 刘先润:解决了 ...
- C语言-第一次作业
题目6-1 计算两数的和与差 1.设计思路 (1)主要描述题目算法 第一步:看主函数知道程序输入浮点型变量a,b,通过函数计算输出和与差. 第二步:函数部分将a赋值op1,b赋值op2,&su ...
- 2017-2018-1 我爱学Java 第一周 作业
构建之法 成员及分工 内容简介 作者简介 分章学习及问题 第一章 概论 第二章 个人技术和流程 第三章 软件工程师的成长 第四章 两人合作 第五章 团队和流程 第六章 敏捷流程 第七章 实战中的软件工 ...
- Twisted 延迟调用
延迟(defer)是twisted框架中实现异步的编程体系,使程序设计可以采用事件驱动的机制 1.基本使用 defer可以看作一个管理回调函数的对象,可以向该对象添加需要的回调函数同时也可以指定该组函 ...
- 关于webService发布的wsdl中的import问题解决
大家都知道jdk1.6及以后都支持了对webService的原生态的支持:它在发布时会生成一个wsdl和一个xsd(一个类只生成一个xsd)所以就保留了引用关系,如下: <?xml versio ...
- SENet
 \(\bf F_{tr}\) 为标准卷积操作 \(\bf F_{sq}\) 为 Global Average Pooling \(\bf F_{ex}\) 为两层全连接网络(可以看做两个1×1卷积 ...
- hp MSA50 5盘RAID5重建为4盘RAID5怎么恢复数据
[用户单位] XX省电视台[数据恢复故障描述] 一台HP 服务器,挂接一台HP MSA50磁盘阵列,内接5块1TB硬盘,原先结构为RAID5. 使用一段时间后,其中一块硬盘掉线,因RAID5支持一块硬 ...
- 吝啬的国度 nyoj
吝啬的国度 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 在一个吝啬的国度里有N个城市,这N个城市间只有N-1条路把这个N个城市连接起来.现在,Tom在第S号城市, ...