[Python-de] Hilfe im "Baum" aufbauen...

Frank Immich frankimmich at gmx.de
Mon Okt 13 15:10:58 CEST 2003


Hallo zusammen, 

ich braeuchte etwas Nachhilfe im Erzeugen von "Baeumen" 
Als Bsp. habe ich die PID, PPID in eine Liste gepackt und 
würde das ganze jetzt gerne als richtigen Baum (am besten noch mit Klassen)
aufbauen:


a)

so habe ich das bis jetzt rekursiv erledigt...:


#!/usr/local/bin/python
import string, sys, re, time

def getchilds(id):
   for child,parent in id_dic.items():
      if parent == id:
         mynode = node(parent,id)
         idlist.append(child)
         getchilds(child)
      mynode = node(parent)
   return idlist


id_dic = {}
idlist=[]
lines=open("/home/testen/ids.txt", "r").readlines()
for line in
lines:id_dic[line.split("|")[0].strip()]=line.split("|")[1].strip()
print getchilds("18648")



ich hatte das schon eimal gefragt, bin aber nie richtig dazugekommen mir das
anzuschauen:
Jetzt wird es aber mal Zeit das zu lernen...
die Antwort damals war:"Bau einen richtigen Baum auf:"

b)

class node:
     def __init__(self, id, parent = None):
         self.id = id
         self.parent = parent # Merke fuer jedes node-Objekt id und parent
         self.children = []
         if parent:
           parent.children.append(self)



Ok. nur leider verstehe ich nicht, 
wie ich von a nach b komme...mit welchen Bedingungen rufe ich den die
Klasse "node" auf ? id, parent
id ist klar...
aber "parent "muss ja auch eine Objekt mit dem Attribut "children" sein...
Irgendwie ist mir das nicht klar ???


Vielleicht kann mich jemand in die richtige Richtung schubsen. 
Vielen Dank 
und Grüße Frank 

-- 
NEU FÜR ALLE - GMX MediaCenter - für Fotos, Musik, Dateien...
Fotoalbum, File Sharing, MMS, Multimedia-Gruß, GMX FotoService

Jetzt kostenlos anmelden unter http://www.gmx.net

+++ GMX - die erste Adresse für Mail, Message, More! +++