[python] Trideni stromu.
David Michal
david_michal na seznam.cz
Pátek Říjen 14 14:39:55 CEST 2005
Radek Kaňovský wrote:
Zdravim,
>sort() nepomuze, protoze napriklad o prvcich (323,5),(1024,49) nelze z
>hlediska porovnani nic rict bez dalsiho kontextu. Jestli spravne chapu
>zadani, tak se vlastne jedna o prochazeni stromu do sirky. Zkuste tohle:
>
> root = 0
> tree = [(1,0), (5,2), (7,3), (2,0), (3,1), (4,2)]
>
> branches = {}
> for item in tree:
> branches.setdefault(item[1],[]).append(item)
>
> bfs = [(root,None)]
> i = 0
> while branches:
> node = bfs[i]
> bfs.extend(branches.pop(node[0], []))
> i += 1
> print bfs
>
>
To neni uplne ono, tohle dava vysledek: [(0, None), (1, 0), (2, 0), (3,
1), (5, 2), (4, 2), (7, 3)]
ale ja bych potreboval [(0,None), (1,0), (3,1), (7,3), (2,0), (5,2), (4,2)]
>Radek Kaňovský
>
>
Diky,
David
Další informace o konferenci Python