Mengenai TypeError: tiada 1 hujah kedudukan yang diperlukan dalam Python
仅有的幸福
仅有的幸福 2017-06-14 10:51:00
0
1
2533

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)

仅有的幸福
仅有的幸福

membalas semua(1)
学习ing
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.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan