Rumah  >  Soal Jawab  >  teks badan

Mengenai TypeError: tiada 1 hujah kedudukan yang diperlukan dalam Python

Mula mempelajari ular sawa dan melihat bahagian tentang struktur data tentang graf Ini adalah untuk melaksanakan lintasan pertama mendalam dan lintasan pertama keluasan graf, tetapi pada akhirnya, ia adalah g.add_nodes([i+1 untuk. i dalam julat(10)]) TypeError: add_nodes() tiada 1 hujah kedudukan yang diperlukan: 'nodelist' akan dipaparkan Saya tidak tahu bagaimana untuk menyelesaikannya.

Ini adalah program saya

Graf kelas(objek):

def __init__(self, *args, **kwargs):
    self.node_neighbors = {}
    self.visited = {}

def add_nodes(self,nodelist):
    for node in nodelist:
        self.add_node(node)

def add_node(self,node):
    if node not in self.add_nodes():
        self.node_neighbors[node] = []

def add_edge(self,edge):
    u, v = edge
    if(v not in self.node_neighbors[u]) and (u not in self.node_neighbors[v]):
        self.node_neighbors[u].append(u)
        if(u!=v):
            self.node_neighbors[v].append(u)

def nodes(self):
    return self.node_neighbors.keys()

def depth_first_search(self, root=None):
    order = []
    def dfs(node):
        self.visited[node] = True
        order.append(node)
        for  n in self.node_neighbors[node]:
            if not n in self.visited:
                dfs(n)
    if root:
        dfs(root)
    for node in self.nodes():
        if not node in self.visited:
            dfs(node)
    print(order)
    return order

def breadtg_frist_search(self, root = None):
    queue = []
    order = []
    def bfs():
        while len(queue) >  0:
            node = queue.pop()
            self.visited[node] = True
            for n in self.node_neighbors[node]:
                if (not n in self.visited) and (not n in queue):
                    queue.append(n)
                    order.append(n)
    if root:
        queue.append(root)
        order.append(root)
        bfs()
    for node in self.nodes():
        if not node in self.visited:
            queue.append(node)
            order.append(node)
            bfs()
    print(order)
    return order

jika nama == '__utama__':

g = Graph()

g.add_nodes([i+1 untuk i dalam julat(10)])
g.add_edge((1, 2))
g.add_edge((1, 3))
g.add_edge((2, 4) )
g.add_edge((2, 5))
g.add_edge((4, 8))
g.add_edge((5, 8))
g.add_edge((5, 9))
g.add_edge( (3, 6))
g.add_edge((3, 7))
g.add_edge((7, 10))
g.add_edge((9, 10))
print('nod:' + g.nodes ())
pesanan = g.breadtg_frist_search(1)
order = g.depth_first_search(1)

仅有的幸福仅有的幸福2707 hari yang lalu2528

membalas semua(1)saya akan balas

  • 学习ing

    学习ing2017-06-14 10:53:00

    def add_node(self,node):
        if node not in self.add_nodes():
            self.node_neighbors[node] = []
    

    if node not in self.add_nodes():中的add_nodes()Memerlukan parameter, terpulang kepada anda apa yang anda perlukan.

    balas
    0
  • Batalbalas