Ho una struttura ad albero che ha un nodo con un ID padre (nodi figlio illimitati). Per scopi di visualizzazione ho bisogno di questa struttura ad albero come un albero binario. Come faccio questo è in ogni livello i nodi sono raggruppati in un singolo nodo in base a una condizione. Quando viene selezionato un nodo, vengono visualizzati i suoi figli. Esempio:Albero binario dall'albero generale
Il verde è quando la condizione è true
e rosso è false
B, C sono stati raggruppati nel nodo di sinistra e D, E sono sulla destra in base alle loro condizioni.
DOMANDA: sto usando KnockoutJS per visualizzare il mio albero e ho bisogno di essere in grado di svolgere le normali operazioni di alberi come avere un nodo in base al suo ID, l'inserimento del nodo (s) rimozione nodo (s). Questa è la struttura che ho. C'è una struttura/modo migliore per farlo?
var tree = [
{ groupNodeId: "A", childNodes: [
{ nodeId: "A", childGroupNodes: [
{ groupNodeId: "B", condition: true, childNodes: [
{ nodeId: "B", childGroupNodes: []},
{ nodeId: "C", childGroupNodes: []}
]},
{ groupNodeId: "D", condition: false, childNodes: [
{ nodeId: "D", childGroupNodes: []},
{ nodeId: "E", childGroupNodes: []}
]}
]}
]}
];
Perché si utilizzano 'childGroupNodes' e' groupNodeId' per i nodi inseriti invece di continuare a utilizzare 'childNodes' e' nodeId'? Inoltre, se, ad esempio, B e C hanno ciascuno un figlio la cui condizione è vera, vuoi che quei due nodi siano raggruppati insieme? –
Inoltre, suppongo 'condizione: true' in groupNode' D' è un refuso? –
Sì, lo è stato, è stato corretto – Ryan