Tengo una estructura en árbol que tiene un nodo con una ID padre (nodos hijos ilimitados). Para fines de visualización, necesito esta estructura de árbol como un árbol binario. Cómo hago esto es que en cada nivel los nodos se agrupan en un solo nodo en función de una condición. Cuando se selecciona un nodo, se muestran sus hijos. Ejemplo:Árbol binario del árbol general
El verde es cuando la condición es true
y el rojo es false
B, C se han agrupado en el nodo izquierdo y D, E están a la derecha basado en sus condiciones
PREGUNTA: estoy usando KnockoutJS para mostrar mi árbol y tengo que ser capaz de realizar las operaciones normales de árboles como conseguir un nodo en función de su ID, la inserción de nodo (s) eliminar nodo (s). Esta es la estructura que tengo. ¿Hay una mejor estructura/forma de hacer esto?
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: []}
]}
]}
]}
];
¿Por qué utiliza '' childGroupNodes' y groupNodeId' para los nodos insertados en lugar de continuar el uso de '' childNodes' y nodeId'? Además, si, por ejemplo, B y C tienen cada uno un hijo cuya 'condición 'es verdadera, ¿quiere que esos dos nodos se agrupen? –
Además, supongo 'condición: true' en groupNode' D' es un error tipográfico? –
Sí lo fue, eso ha sido arreglado – Ryan