예제 #1
0
def test_1(prt=sys.stdout):
    txtblk = """
    A:  F B 
    B:  F A 
    C:  G 
    D:  I E J H 
    E:  D J 
    F:  A B 
    G:  C 
    H:  I D 
    I:  D H J 
    J:  D I E 
  """
    G = Graph(adjtxt=txtblk)
    cc = CC(G)
    cc.prt_ids(prt)
    prt.write("\n{}\n".format(G))
예제 #2
0
def test_1(prt=sys.stdout):
  txtblk = """
    A:  F B 
    B:  F A 
    C:  G 
    D:  I E J H 
    E:  D J 
    F:  A B 
    G:  C 
    H:  I D 
    I:  D H J 
    J:  D I E 
  """
  G = Graph(adjtxt=txtblk)
  cc = CC(G)
  cc.prt_ids(prt)
  prt.write("\n{}\n".format(G))
예제 #3
0
def main(prt=sys.stdout):
  L = len(sys.argv[1:])
  g = cli_get_fin(sys.argv[1] if L != 0 else "../thirdparty/tinyG.txt")
  G = Graph(g)
  cc = CC(G)

  # number of connected components
  M = cc.count()
  prt.write("{M} components\n".format(M=M))

  # compute list of vertices in each connected component
  components = [cx.deque() for i in range(M)]
  for v in range(G.V()):
    components[cc.id(v)].append(v) # enqueue(v)

  # print results
  for i in range(M):
    for v in components[i]:
      prt.write("{v} ".format(v=v))
    prt.write("\n")
예제 #4
0
def test_0(prt=sys.stdout):
    L = len(sys.argv[1:])
    g = cli_get_fin(sys.argv[1] if L != 0 else "../thirdparty/tinyG.txt")
    G = Graph(g)
    cc = CC(G)

    # number of connected components
    M = cc.count()
    prt.write("{M} components\n".format(M=M))

    # compute list of vertices in each connected component
    components = [cx.deque() for i in range(M)]
    for v in range(G.V()):
        components[cc.id(v)].append(v)  # enqueue(v)

    # print results
    for i in range(M):
        for v in components[i]:
            prt.write("{v} ".format(v=v))
        prt.write("\n")