Tôi có cấu trúc cây có nút có ID cha (các nút con không giới hạn). Vì mục đích hiển thị, tôi cần cấu trúc cây này như một cây nhị phân. Làm thế nào tôi làm điều này là ở mỗi nút cấp được nhóm lại thành một nút duy nhất dựa trên một điều kiện. Khi một nút được chọn, con của nó sẽ được hiển thị. Ví dụ:Cây nhị phân từ cây chung
Các màu xanh lá cây là khi điều kiện là true
và màu đỏ là false
B, C đã được nhóm lại thành nút trái và D, E ở bên phải dựa trên điều kiện của họ.
CÂU HỎI: Tôi đang sử dụng KnockoutJS để hiển thị cây và tôi cần có thể thực hiện các hoạt động bình thường của cây như nhận nút dựa trên ID của nó, chèn (các) nút xóa (các) nút. Đây là cấu trúc tôi có. Có cấu trúc/cách làm tốt hơn không?
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: []}
]}
]}
]}
];
Tại sao bạn sử dụng 'childGroupNodes' và' groupNodeId' cho các nút được chèn thay vì tiếp tục sử dụng 'childNodes' và' nodeId'? Ngoài ra, nếu, ví dụ, B và C mỗi có một đứa trẻ có 'điều kiện' là đúng, bạn có muốn hai nút đó được nhóm lại với nhau không? –
Ngoài ra, tôi giả sử 'điều kiện: true' trong groupNode' D' là một lỗi đánh máy? –
Vâng, đã được sửa chữa – Ryan