图的简单介绍

定义及术语

G(V,E):图G的顶点集为V,边集为E。分为有向图和无向图两类。

顶点的度:与该结点相连的边的条数。

出度:顶点的出边条数

入度:顶点的入边条数

顶点的权值称为点权,边的权值称为边权。

存储

1.邻接矩阵

用一个二维数组G[ i ][ j ]实现存储顶点 i 与顶点 j 之间的关系,可以是存储两顶点之间的边权,也可以仅表示两顶点之间是否有关系。

它其实是一个对称矩阵,相当于一个无向图。

但不适合顶点数目较多的题目。

2.邻接表

为每个顶点建立一个邻接表,用来存储与之有关的出边的信息,包括边的顶点与边的大小。

那么n个顶点就会有n个邻接表。对于每个邻接表可以用数组存储,也可以用链表存储。

此处示范用vector容器存储

cpp 复制代码
//只存边的编号情况
vector<int> node;
node[i].push_back(index);//向编号为i的顶点加入一个编号为index的顶点
cpp 复制代码
//存边的编号与大小的情况
struct node{
    int num;
    int value;
};
vector<node> v;
void insert(int x,int y){
    node n;
    n.num=x;n.value=y;
    v.push_back(n);
}
cpp 复制代码
//存边的编号与大小的情况
struct node{//可实现定义的同时初始化
    int num;
    int value;
    node(int n,int v){//构造函数-初始化
        num=n;
        value=v;
    }
};
vector<node> v;
void insert(int x,int y){
    v.push_back(node(x,y));
}
相关推荐
小猪咪piggy10 小时前
【算法】leetcode100 图论
算法·图论
罗湖老棍子1 天前
最优乘车(travel)(信息学奥赛一本通- P1377)
算法·图论·bfs·最短路·字符串流·单向边
一条大祥脚1 天前
Codeforces Round 1072 (Div. 3) 树形背包|线段树二分|区间并查集维护区间合并/set维护区间分裂
算法·深度优先·图论
罗湖老棍子1 天前
团伙(group)(信息学奥赛一本通- P1385)
算法·图论·并查集
十八岁讨厌编程1 天前
【算法训练营Day32】图论专题
算法·深度优先·图论
罗湖老棍子1 天前
【例4-8】格子游戏(信息学奥赛一本通- P1347)
stl·图论·并查集·二维坐标压缩
lzllzz232 天前
递归的理解
算法·深度优先·图论
不爱编程爱睡觉2 天前
代码随想录算法训练营第四十三天 | 图论理论基础、深搜理论基础、98. 所有可达路径、广搜理论基础
算法·leetcode·图论·代码随想录
qq_433554542 天前
C++ 图论算法:二分图最大匹配
c++·算法·图论
罗湖老棍子4 天前
【模板】并查集(洛谷P3367)
算法·图论·并查集