Sziasztok!
tudna valaki segíteni aki penge pythonban és C-ben? van egy kódrészletem ami gráfokban két adott csúcs összes útvonalát kiírja. Tök jól működik de nem igazán tudom értelmezni és C-re átírni mert nem vágom a pythont:
g = {1:[2,3],2:[4],3:[5],4:[5]}
def find_all_paths(graph, start, end, path=[]):
"""
don't stop at the first path
"""
path = path + [start]
if start == end:
return [path]
if not graph.has_key(start):
return []
paths = []
print graph[start]
return None
for node in graph[start]:
if node not in path:
newpaths = find_all_paths(graph, node, end, path)
for newpath in newpaths:
paths.append(newpath)
return paths
print find_all_paths(g,1,5)
- 1047 megtekintés
Hozzászólások
szerintem tedd \[code\] tage-ek közé, mert a Pythonban elég fontos szerepe van az indent-nek, ami itt ugyebár nem látszik... :)
Ha beállítod, majd valami ilyesmit kell látnod előnézetben:
g = {1:[2,3],2:[4],3:[5],4:[5]}
def find_all_paths(graph, start, end, path=[]):
"""don't stop at the first path"""
ugyebár a tab nem működik, helyette szóközt fogsz használni, figyelve azok számára :)
a.
- A hozzászóláshoz be kell jelentkezni
hali
def find_all_paths(graph, start, end, path=[]):
path = path + [start]
if start == end:
return [path]
if not graph.has_key(start):
return []
paths = []
for node in graph[start]:
if node not in path:
newpaths = find_all_paths(graph, node, end, path)
for newpath in newpaths:
paths.append(newpath)
return paths
http://www.python.org/doc/essays/graphs.html
/* bocs az esetleges helyesirasi hidakert */
- A hozzászóláshoz be kell jelentkezni
Hasznalj glib-et (http://www.gtk.org/api/2.6/glib/index.html) es akkor meg lesznek azok az adatstrukturak, amik python-ban alapok (hash, lista) utanna trivialisan attultetheto a kod C-be.
- A hozzászóláshoz be kell jelentkezni
Azóta már változott, fejlődött pár dolog.
http://library.gnome.org/devel/glib/unstable/index.html
-----
"Egy jó kapcsolatban a társunkat az ő dolgában kell támogatni, nem a miénkben."
- A hozzászóláshoz be kell jelentkezni
Amúgy feladat, hogy írd át C-be vagy csak úgygondolod, hogy a C-hez jobban értesz és ezért akarod átírni? A Python (nagyon) könnyen tanulható. Lásd: http://learnpython.openproject.hu
- A hozzászóláshoz be kell jelentkezni