我试图使用Tarjan算法确定有向图中的周期,该算法在1972年Septermber的研究论文"有向图的基本电路的枚举"中提出.
我正在使用Python来编写算法代码,并使用邻接列表来跟踪节点之间的关系.

所以在下面的"G"中,节点0指向节点1,节点1指向节点4,6,7 ...等.
G = [[1], [4, 6, 7], [4, 6, 7], [4, 6, 7], [2, 3], [2, 3], [5, 8], [5, 8], [], []]
N = len(G)
points = []
marked_stack = []
marked = [False for x in xrange(0,N)]
g = None
def tarjan(s, v, f):
global g
points.append(v)
marked_stack.append(v)
marked[v] = True
for w in G[v]:
if w < s:
G[v].pop(G[v].index(w))
elif w == s:
print points
f = True
elif marked[w] == False:
if f …Run Code Online (Sandbox Code Playgroud) 假设我有一个名为"numbers"的列表(3 1 4 5 2).我正在寻找一个命令,它将列表从索引0反转到任意索引,即(反向数字2),它将新列表作为(4 1 3 5 2).
我试过谷歌搜索,但找不到合适的功能,我在这个阶段自己编写这个功能太多了.
谢谢.