2/15图论浅讲(知识点)
(后期会转移博客,所以排版不太好)
前置知识-vector 动态数组
操作1:创建一个动态数组
vector<数据类型> 数组名字
操作2:插入元素 O(logn)
方式1:q.push_back(数据);在数组最后面塞数据
方式2:q.insert(q.begin()+i,a);i为下标,将a数据插入到i号位置,相当于直接顶替 q[i],后面数据(包含原q[i])下标都往后移。
操作3:访问数据
q[下标]
操作4:获取长度
q.size()
操作5:清空动态数组
q.clear()
操作7:删除数据
op.erase(op.begin() + i); // 下标为i的元素,删除第i+1个元素
操作8:初始化内存长度
op.resize(n);// 改变长度为n,默认初始值是0
op.resize(n,x);// 改变长度为n,全部修改为x
op.resize(n+5);// 多加一点点
操作9:排序
sort(op.begin(), op.end()); // 从小到大排序
图论
图:存在点和边的图形
边是用来表示点和点之间的连接关系
点的数量至少为1
边的数量可以为0
三种:
1.有向图
图内的所有边都是有向边
2.无向图
图内的所有边都是无向边(两个有向图)
3.混合图
图内的边有有向边和无向边混合
环
从一个点A出发,可以回到自身,说明图之中存在一个A点上的环
自环:自己到自己的环
重边:同起点同终点存在多条边
度
度(元向图):直接连接的边的数量
入度:一个点的入度指的是指向自己的边的数量(有向图)
出度:一个点的出度指的是从这个点出发的直接边的数量
题目
应该不需要写