예제 #1
0
def randomGr(V: int = 10, E: int = 20) -> Graph:
    gr = Graph(V)
    i = E
    while i > 0:
        v = randoms.r_int(V - 1)
        w = randoms.r_int(V - 1)
        # if v-w not exist, add edj
        if w not in gr.adjlist(v) and v != w:
            gr.addEdge(v, w)
            i -= 1
    return gr
예제 #2
0
 def dfs(self, G: Graph, s: int):
     queue = deque()
     self.marked[s] = True
     queue.append(s)
     while queue:
         v = queue.popleft()
         for w in G.adjlist(v):
             if not self.marked[w]:
                 self.edgeTo[w] = v
                 self.marked[w] = True
                 queue.append(w)
예제 #3
0
    def dfs(self, G: Graph, s: int):
        dot_node(s)
        queue = deque()
        self.marked[s] = True
        queue.append(s)
        while queue:
            v = queue.popleft()
            for w in G.adjlist(v):
                if not self.marked[w]:
                    self.marked[w] = True
                    self.count += 1
                    queue.append(w)

                    dot_node(w)
예제 #4
0
파일: DFS.py 프로젝트: Jasper-1024/python
 def dfs(self, gr: Graph, v: int):
     self.marked[v] = True
     for w in gr.adjlist(v):
         if not self.rmarked(w):
             self.edgeTo[w] = v
             self.dfs(gr, w)
예제 #5
0
파일: DFS.py 프로젝트: Jasper-1024/python
 def __init__(self, gr: Graph, s: int):
     self.marked = [False] * gr.rV()
     self.marked = [None] * gr.rV()
     self.s = s
     self.dfs(gr, s)
예제 #6
0
파일: DFS.py 프로젝트: Jasper-1024/python
 def dfs(self, gr: Graph, v: int):
     self.marked[v] = True
     self.count += 1
     for w in gr.adjlist(v):
         if not self.rmarked(w):
             self.dfs(gr, w)
예제 #7
0
def randomGr(V: int = 10, E: int = 20) -> Graph:
    gr = Graph(V)
    i = E
    while i > 0:
        v = randoms.r_int(V - 1)
        w = randoms.r_int(V - 1)
        # if v-w not exist, add edj
        if w not in gr.adjlist(v) and v != w:
            gr.addEdge(v, w)
            i -= 1
    return gr


if __name__ == "__main__":
    test = prgraph()
    gr = Graph(4)
    # for item in G:
    #     gr.addEdge(item[0], item[1])
    # v = gr.rV()
    # dot = test.graph(gr)
    # dot.view()

    # digr = Digraph(5)
    # for item in G:
    #     digr.addEdge(item[0], item[1])

    # dot = test.digraph(digr)
    # dot.view()
    # gr = gr.load()

    gs = randomGr(50, 60)
예제 #8
0
파일: gif.py 프로젝트: Jasper-1024/python
#!/usr/bin/python3

from GH import Graph, prgraph
# from test import randomGr
import functools, os, imageio, time, copy
import glob

test = prgraph()
gr = copy.deepcopy(Graph().load())
dot = test.graph(gr)


def dot_node(w: int):
    dot.node(str(w), color='red')
    dot.attr(size='20,20')
    dot.format = 'png'
    dot.render(filename='%s' % (str(time.time() * 1000 % 10000)),
               directory=None,
               view=False,
               cleanup=True)


def wrap_dot_node(func):
    @functools.wraps(func)
    def wrapper(*args, **kw):

        dot.node(str(args[2]), color='red')
        dot.attr(size='20,20')
        dot.format = 'png'
        dot.render(filename='%s' % (str(time.time() * 1000 % 10000)),
                   directory=None,
예제 #9
0
 def __init__(self, G: Graph, s: int):
     self.marked = [False] * G.rV()
     self.edgeTo = [None] * G.rV()
     self.s = s
     self.dfs(G, s)
예제 #10
0
 def __init__(self, G: Graph, s: int):
     self.marked = [False] * G.rV()
     self.count = 0
     self.dfs(G, s)