Je suis novice en matière de python. Je veux écrire un programme qui produise un dessin en forme d'arbre sur l'écran de l'ordinateur. stdout
. Mon rendement idéal est comme :
0
|__0
|__4
| |__360
| |__1000
272
|__3460
Les données que j'ai recueillies sont les suivantes :
0 : [0, 4]
4 : [360]
272 : [3460]
368 : [4184]
472 : [504, 576, 7016]
568 : [584, 640]
576 : [664, 672]
640 : [1048]
664 : [368, 372, 512, 788]
788 : [2120, 2720, 2976, 2996, 3956, 3980]
La colonne de gauche est l'identifiant du processus parent, et la colonne de droite est l'identifiant du processus enfant. Je mets les données dans un dictionnaire appelé dic
. Donc le dictionnaire key
est l'identifiant du processus parent, et le dictionnaire value
est une liste composée d'ID de processus enfant.
Mon code est le suivant :
for key in dic.keys():
print key, '\n|'
for v in dic[key]:
print '__', v, '\n|'
La question est que je ne peux produire que des arbres à deux couches. Prenez les données par exemple, 576
en tant qu'id parent est aussi un id enfant de 472
. Donc 576
664, 672 doivent être placés dans la sous-arborescence de 472. Mon code ne fonctionne pas pour cela. Il semble que nous devions utiliser des fonctions récursives. Mais je ne sais pas comment le faire.
Pourriez-vous me donner des conseils ?
EDIT : D'après les données que j'ai collectées, il y a des IDs de parents qui n'ont pas de grand parent. Donc le résultat final devrait être une forêt. Pas un arbre à racines simples.