图的简单介绍

定义及术语

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));
}
相关推荐
Fa_Mian_Tuan1 天前
图论基础|邻接矩阵超详细讲解(含无向/有向/带权图+完整可运行C语言代码)
c语言·数据结构·笔记·算法·图论
有点。2 天前
C++二叉树二(练习题)
数据结构·c++·算法·图论
依然鸣3 天前
PTA团体程序设计天梯赛L1真题讲解L1-077-080
开发语言·c++·算法·深度优先·pat考试·图论
oier_Asad.Chen4 天前
【洛谷题解/AcWing题解/OI学习笔记】洛谷P2868【USACO07DEC】Sightseeing Cows G(01分数规划求最大比率)
算法·图论·spfa·二分·负环
wabs6664 天前
关于图论【A*算法 | 卡码网127.骑士的攻击的思考】
数据结构·算法·图论·卡码网·广搜的改进版
依然鸣5 天前
PTA团体程序设计天梯赛L2真题讲解L2-005-008
开发语言·数据结构·c++·算法·深度优先·pat考试·图论
wabs6666 天前
关于图论【最短路径之Bellman_ford 算法(单源有限最短路)|卡码网96.城市间货物运输III的思考】
数据结构·算法·图论·卡码网·bellman_ford·单源有限最短路
wabs6667 天前
关于图论【最短路径之Bellman_ford 算法(判断负权回路)|卡码网95.城市间货物运输II的思考】
数据结构·算法·图论·bellman_ford算法·卡码网·判断负权回路
cpp_25018 天前
P1113 [USACO02FEB] 杂务
数据结构·c++·算法·动态规划·图论·拓扑排序·洛谷题解
漂流瓶jz8 天前
UVA-12174 Shuffle的播放记录 题解答案代码 算法竞赛入门经典第二版
数据结构·c++·算法·图论·滑动窗口·算法竞赛入门经典·uva