
图论
文章平均质量分 62
图论
losing_QAQ_OIer
这个作者很懒,什么都没留下…
展开
-
双向链表(C++数组实现)
概念双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点。一般我们都构造双向循环链表。(百度)操作(以下红边为新加入的边,黑边为删除的边)题外话- -由于窝不会用链表,所以才用数组实现的用一个pre数组存储每一个节点的前驱(即前一个节点),next数组存储每一个节点的后驱(即后一个节点)。删点现在要将x节点删掉(如下图)。我们知道了x = pre [z] = next [y]原创 2021-08-11 20:11:20 · 971 阅读 · 2 评论 -
证明:树是一种二分图
题外话- -本蒟蒻在看到一些结论或者发现什么结论的时候总是喜欢自己证明一下。刷题的时候看到树和二分图结合起来,其实不用判断一棵树是不是二分图,因为它一定是!我们都知道一颗n个节点的树有n-1条边,并且除根节点以外每个节点都只有一个父亲。二分图中,将顶点集合V分成两个互不相交的子集(A,B),且每条边的两个顶点分别在A和B中。证明:设G=(V,E)是一颗无根树。取树的任意一个节点为根节点,将这个节点放入一个顶点集合A中,那么就可以将这个节点的孩子节点放入另一个顶点集合B中……以此类推,能将一棵树的顶点集合原创 2021-07-08 21:21:15 · 4574 阅读 · 0 评论 -
邻接矩阵与邻接表(C++)
说明不管是在树还是图中,最基础的就是先建树(图)。在这篇文章中吗,本蒟就简单介绍两种建图的方式 。邻接矩阵邻接矩阵能够让我们更加容易地表示两点之间的关系,如:a[x][y]可以直接或间接表示x到y点的距离或x能否走到y点(或其它意思)。不过,它的缺点就是消耗的空间较大(即10000个点就得建立一个10000*10000的二维数组)。举个简单的例子:输入格式第一行输入n个点,m条边。...原创 2020-01-19 11:54:32 · 1708 阅读 · 0 评论