J'ai un tas d'objets dans une structure plate. Ces objets ont une propriété ID
et une propriété ParentID
afin qu'ils puissent être disposés dans des arbres. Ils ne sont pas dans un ordre particulier. Chaque propriété ParentID
ne correspond pas nécessairement à ID
dans la structure. Par conséquent, leur pourrait être plusieurs arbres émergeant de ces objets.Comment construire efficacement un arbre à partir d'une structure plane?
Comment traiteriez-vous ces objets pour créer les arbres résultants?
Je ne suis pas loin d'être une solution, mais je suis sûr qu'il est loin d'être optimale ...
Je dois créer ces arbres pour insérer ensuite des données dans une base de données, dans le bon ordre.
Il n'y a pas de références circulaires. Un nœud est un RootNode lorsque ParentID == null ou lorsque ParentID ne peut pas être trouvé dans les autres objets
Qu'entendez-vous par "créer"? Rendu dans une interface utilisateur? Stocker de manière hiérarchique en XML ou une base de données? – RedFilter
Comment définissez-vous un nœud sans parent (c'est-à-dire un nœud racine). ParentID est null? ParentID = 0? Je suppose qu'il n'y a pas de références circulaires correctes? –
Je trouve cette question assez cool. – nes1983