原创,未经允许不得转载。

图的建立有两种,邻接矩阵和邻接表。

邻接矩阵适用于图较为密集,(稀疏图太浪费存储空间了),图如果较为稀疏,则使用邻接表为宜,dijkstra算法就是以邻接表为基础的。

有向无权图

#include<iostream>
#include <vector>
#include <algorithm>
#include <queue>
#include <stack>
using namespace std;
#define N 100000+5
vector<int >p[N]; int main()
{
int n,m;
cin>>n>>m;
int start,to;
for (int i=;i<m;i++)
{
cin>>start>>to;
p[start].push_back(to);
}
for (int i=1;i<=n;i++)
{
for (int j=;j<p[i].size();j++)
{
cout<<p[i][j]<<" ";
}cout<<endl;
}cout<<endl;
}

无向无权图的建立:

#include<iostream>
#include <vector>
#include <algorithm>
#include <queue>
#include <stack>
#include <set>
#include <cstdio>
#include <iterator>
#include <cstring>
using namespace std;
#define N 100000+5
vector<int >p[N]; int main()
{
int n,m;
cin>>n>>m;
int start,to;
for (int i=;i<m;i++)
{
cin>>start>>to;
p[start].push_back(to);
p[to].push_back(start);
}
for (int i=;i<=n;i++)
{
for (int j=;j<p[i].size();j++)
{
cout<<p[i][j]<<" ";
}cout<<endl;
}cout<<endl;
}

有向有权图的建立:

#include<iostream>
#include <vector>
#include <algorithm>
#include <queue>
#include <stack>
#include <set>
#include <cstdio>
#include <iterator>
#include <sstream>
#include <cmath>
#include <list>
#include <deque>
#include <cstring>
using namespace std;
#define N 100000+5
struct node
{
int to,cost;
};
vector<node >p[N]; int main()
{
int n,m;
cin>>n>>m;
int start,to;
for (int i=;i<m;i++)
{
node c;
cin>>start>>c.to>>c.cost;
p[start].push_back(c);
}
cout<<endl;
for (int i=;i<=n;i++)
{
for (int j=;j<p[i].size();j++)
{
cout<<i<<" "<<p[i][j].to<<" "<<p[i][j].cost<<" "<<endl;
}
}cout<<endl;
}

无向有权图的建立:

vector 邻接表的建立(好笨啊,才懂,可能太困了吧)。。的更多相关文章

  1. SPFA中 正逆邻接表的建立

    正邻接表的建立: 先定义一个结构体: struct node { int r,v,w,next; }Map[]; 每输入一组数据 就通过Add函数加入到邻接表中,上图已经说得很明白了,结合着下面的代码 ...

  2. 三种邻接表存图模板:vector邻接表、数组邻接表、链式前向星

    vector邻接表: ; struct Edge{ int u,v,w; Edge(int _u=0,int _v=0,int _w=0){u=_u,v=_v,w=_w;} }; vector< ...

  3. HUST 1103 校赛 邻接表-拓扑排序

    Description N students were invited to attend a party, every student has some friends, only if someo ...

  4. Hihocoder 之 #1097 : 最小生成树一·Prim算法 (用vector二维 模拟邻接表,进行prim()生成树算法, *【模板】)

    #1097 : 最小生成树一·Prim算法 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 最近,小Hi很喜欢玩的一款游戏模拟城市开放出了新Mod,在这个Mod中,玩家可 ...

  5. 用邻接表或vector实现存边以及具体如何调用[模板]

    存边: 对于指针实现的邻接表: struct edge{ int from,next,to,w; }E[maxn]; int head[maxn],tot=0;//head初始化为-1: void a ...

  6. HDU 2647 Reward(拓扑排序,vector实现邻接表)

    Reward Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Subm ...

  7. 从0开始 图论学习 邻接表 STL vector

    邻接表表示 用vector实现 writer:pprp 代码如下: #include <bits/stdc++.h> using namespace std; const int maxn ...

  8. STL中vector怎么实现邻接表

    最近,同期的一位大佬给我出了一道题目,改编自 洛谷 P2783 有机化学之神偶尔会做作弊 这道题好坑啊,普通链表过不了,只能用vector来存边.可能更快一些吧? 所以,我想记录并分享一下vector ...

  9. 邻接表的使用及和vector的比較

    这几天碰到一些对建边要求挺高的题目.而vector不好建边,所以学习了邻接表.. 以下是我对邻接表的一些看法. 邻接表的储存方式 邻接表就是就是每一个节点的一个链表,而且是头插法建的链表,这里我们首先 ...

随机推荐

  1. android onActivityResult的执行

    1.如果activity中重写了onActivityResult函数,同时添加在该activity的fragment也重写了onActivtyResult函数,那么会执行Activity的onActi ...

  2. asp.net 练习 js 调用webservice

    using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.We ...

  3. Bzoj1939 [Croatian2010] Zuma

    Time Limit: 4 Sec  Memory Limit: 64 MBSubmit: 43  Solved: 31 Description 有一行 N 个弹子,每一个都有一个颜色.每次可以让超过 ...

  4. 20155227 2016-2017-2 《Java程序设计》第四周学习总结

    20155227 2016-2017-2 <Java程序设计>第四周学习总结 教材学习内容总结 继承 继承 继承是Java程序设计语言面向对象的又一重要体现,允许子类继承父类,避免重复的行 ...

  5. Jenkins02:Jenkins+maven+svn集成

    1.安装Maven并配置环境变量 下载maven(windows下载zip包,linux下载tar.gz包),然后配置环境变量 在项目中使用maven,可以从java中央仓库中获取到项目所依赖的jar ...

  6. JS设计模式——12.装饰者模式

    装饰者模式概述 本章讨论的是一种为对象添加特性的技术,她并不使用创建新子类这种手段. 装饰者模式可以用来透明的把对象包装在具有同样接口的另一个对象中.这样一来,就可以给一个方法添加一些行为,然后将方法 ...

  7. 修复TortoiseGit文件夹和文件图标不显示问题的多种解决办法以及重启之后TortoiseGit图标注册表又不见了的解决办法

    一 首先进行第一种尝试 打开 regedit.exe ,准备修改注册表 找到 HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\ ...

  8. java基础20 StringBuffer缓冲类

    1.概要 StringBuffer 其实就是一个存储字符的容器 字符串特点:字符串是常量;它们创建之后不能更改了字符串一旦发生变化,那么立马创建一个新的对象.注意:字符串的内容不适合频繁修改的,因为一 ...

  9. thinkphp框架if标签条件表达式

    eq 等于neq 不等于gt 大于egt 大于等于lt 小于elt 小于等于

  10. 【读书笔记】Android的Ashmem机制学习

    Ashmem是安卓在linux基础上添加的驱动模块,就是说安卓有linux没有的功能. Ashmem模块在内核层面上实现,在运行时库和应用程序框架层提供了访问接口.在运行时库层提供的是C++接口,在应 ...