未加权图结构不运行

2024-06-28 20:57:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试使用邻接列表方法来实现一个未加权的图结构。我尝试添加一个函数来添加新的节点和边

当我尝试运行代码时,它似乎没有运行并且有很多问题

我不知道接下来该怎么办

这方面的任何帮助都会很好

Graph = {
    'A': set(['B', 'C']), 
    'B': set(['A', 'D', 'E']),
    'C': set(['A', 'F']), 
    'D': set(['B', 'G']), 
    'E': set(['B', 'F', 'G']), 
    'F': set(['C', 'E']), 
    'G': set(['E', 'D'])}


class node:
    def __init__(self, node, edges = []):
        self.label = node 
        self.edges = edges


    def __str__(self):
        return 'Node(' + str(self.label) + ", " + str(self.edges) +")"


class Graph(node): 
    def __init__(self):
        self.nodes = {}


    def addnode(self,name): 
        self.node[name] = node(name)

    def addedge(self, source, target):
        self.nodes[source].edges = self.node[source].edges + [target]

    def dot(self):
        for nodename in self.node:
            for edge in self.node[nodename].edges: 
                print(str(nodename) + " -> "+ str(edge))

if __name__ == '__main__':
    G = Graph() 
    G.addnode(A) 
    G.addedge(A) 
    G.addnode(B,C) 
    G.addnode(D) 
    G.addedge(B,C) 
    G.addnode(E) 
    G.addedge(E,F) 
    G.addnode(G) 
    G.addedge(G,D)

Tags: nameselfnodesourceinitdeflabelclass