python --> C konverzió

 ( moho.jojo | 2007. október 14., vasárnap - 22:33 )

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)

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

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.

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 */

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.

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."

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