Esistono buone librerie per la manipolazione di alberi in javascript? Per essere chiari, sto cercando l'albero come nella struttura dei dati, non il modello di visualizzazione.Quali strutture di dati dell'albero javascript sono disponibili?
risposta
Ecco alcune librerie che si possono trovare utili:
arboreal.js, un "micro-libreria per l'attraversamento e la manipolazione di strutture di dati ad albero" in node.js e il browser.
buckets, una "libreria di strutture dati completa, completamente testata e documentata" che include BST, un mucchio e un mucchio di altri extra.
Vorrei aver già visto quella soluzione, perché quelle librerie sembrano utili!
Ecco uno che ho messo insieme che è un'alternativa. Indicato per attraversare, manipolare e caricare strutture gerarchiche di alberi da tabelle piatte autoreferenziali, non per alberi binari bilanciati.
Non sono sicuro di che cosa i vostri bisogni sono quindi questo è un salto nel buio. Io di solito uso (per il peso leggero Javascript) un array di array, in questo modo:
node[i] = [parent, firstChild, secondChild, ... nthChild];
provare il DOM
var o = document.createElement('WHAT_YOU_WANT')
// o.appendChild(...)
Si prega di aggiungere alcune spiegazioni sul perché questo codice aiuti l'OP. Ciò contribuirà a fornire una buona risposta. Vedi [risposta] per maggiori informazioni. –
Non sono d'accordo con questa risposta. Il DOM è una struttura ad albero, compatibile con XML e JSON. Rimozione di nodi, aggiunta di bambini, bambini che contengono bambini. Aggiungi un po 'di CSS e puoi facilmente creare una struttura a treeview. Inoltre la domanda non specifica l'aspetto del widget che vogliono. –
Questa è una buona risposta, perché è downvoted? –
ho scritto uno dei dati semplici orientate biblioteca albero chiamato data-tree. È possibile utilizzare questo per creare, attraversare e cercare albero in moda BFS/DFS. Puoi anche importare/esportare i dati dalla struttura ad albero. Checkout la documentazione dettagliata a: http://cchandurkar.github.io/Data-Tree/
di usarlo in un nodo npm install data-tree
Le richieste di raccomandazione per risorse o strumenti fuori sede sono off-topic su Stack Overflow. Se rispondi, rinforzi specificamente la convinzione che Stack Overflow sia un buon posto per rispondere a tali domande. Non è. Si prega di non rispondere a queste domande, anche se si conosce una buona risposta in quanto la maggior parte delle risposte sarà fortemente supponente ("personalmente mi piace ..."). È possibile aprire il dialogo flag sulla domanda e vedere il motivo di chiusura per intero nella categoria ** off-topic **, o nella [help/on-topic]. Non dovresti nemmeno rispondere in un commento, poiché l'effetto è simile a una risposta reale. –
@Kyll, grazie per averlo portato alla mia attenzione. Non voglio rafforzare alcuna convinzione del genere. Sarebbe appropriato se elimino la mia risposta? –
Peccato arborea non sembra più mantenuto, 3 richieste di pull in attesa di 2 anni. le benne sembrano davvero buone ma a parte ciò non forniscono realmente strutture di dati dell'albero – Overdrivr
TreeModel come indicato da @JNS sembra essere l'opzione migliore. –
Su un progetto a cui ho lavorato per l'ONG ruandese Solid Africa, la struttura ad albero era una parte importante per tenere traccia delle spese e delle donazioni (le spese o le donazioni appartenevano a una categoria, cibo, cure speciali ecc.). Sulla base di questa esperienza ho sviluppato il [pacchetto tree-util node] (https://www.npmjs.com/package/tree-util). Spero che possa essere utile quando vuoi lavorare con strutture ad albero. Soprattutto se si riferiscono i dati alle strutture dell'albero. –