对于一非空的循环单链表,h和p分别指向链表的头、尾结点,则有:
时间: 2023-04-25 08:06:28 浏览: 368
数据结构c版(1)-线性表之双向带头循环链表代码
如果给定一个非空的有向图,其中每条边都有一个权重,那么对于该有向图的任意一个环路,如果该环路中的所有边权重的乘积大于1,则该有向图就是一个有向非零环图。
其中,h 指向环路起点的第一条边,p 指向环路上的某个边,使得 p 指向的边权重乘积大于1,同时 p 指向的下一条边权重乘积小于等于1,即从 p 开始顺时针或逆时针方向的所有边权重乘积均小于等于1,那么可以得到从 h 开始到 p(不包括 p)的路径上所有边的权重乘积都小于等于1。
因此,可以通过将从 h 开始到 p(不包括 p)的路径上所有边的权重都取倒数,然后将取倒数后的图中所有边的权重都加上 1,得到一个新的有向图。显然,新图中所有边的权重均大于等于 1。如果该新图仍然是有向非零环图,则继续重复上述步骤,直到得到一个有向零环图或者找不到满足条件的 h 和 p。
根据这种方法,可以找到有向非零环图中权重最大的环路。
阅读全文