2010-01-28 4 views
7

Quali sono alcune buone API Java per lavorare con i grafici (spigoli/nodi) come strutture dati?Elenco di API Java per strutture di dati grafico/di rete

Si prega di aggiungere riferimenti a domande SO simili nei commenti a questo wiki. Si prega di modificare l'elenco in questa voce wiki direttamente. Aggiungi una descrizione riassuntiva dei tuoi progetti aggiunti come risposte (un progetto per risposta).

+0

simile: http://stackoverflow.com/questions/745048/looking-for-a-simple-java-api-for-creating-graphs-edges-nodes – harschware

risposta

4

JUNG - Java Universal Network/Graph Framework - è una libreria software che fornisce un linguaggio comune ed estendibile per la modellazione, l'analisi e la visualizzazione di dati che possono essere rappresentati come un grafico o una rete.

4

JGraphT - JGraphT è una libreria di grafi Java gratuita che fornisce oggetti e algoritmi matematici di teoria dei grafi. JGraphT supporta vari tipi di grafici tra cui:

  • grafi orientati e non orientati.
  • grafici con ponderazione/non ponderata/etichettati o qualsiasi spigolo definito dall'utente.
  • varie opzioni di bordo, tra cui: grafici semplici, multigrafi, pseudografi.
  • grafici non modificabili: consente ai moduli di fornire accesso "in sola lettura" ai grafici interni.
  • grafici ascoltabili: consente agli ascoltatori esterni di tenere traccia degli eventi di modifica.
  • grafici dei sottografi che aggiornano automaticamente le visualizzazioni del sottografo su altri grafici.
  • tutte le composizioni di grafici sopra

(richiede Java 1,6)

+0

JGraph sembra essere per la visualizzazione. – harschware

+0

Ho modificato per rimuovere JGraph come non adatto e Jung come accennato in precedenza. Ora segue l'unico formato API per risposta ... Grazie a @Kaleb Brasee per il post originale. – harschware

2

JDSL - JDSL è le strutture dati libreria in Java. Si tratta di una raccolta di interfacce Java e le classi che implementano strutture dati fondamentali e algoritmi, come ad esempio:

  • sequenze, alberi, code di priorità, alberi di ricerca, tabelle hash
  • ordinamento e algoritmi di ricerca
  • grafici
  • attraversamenti grafico, più breve percorso, copertura minimo

(JDSL non sembra supportare generici)

6

Ho cercato un sacco per Java Graph Library nel web per la mia tesi di laurea. vi consiglio i seguenti quadri:

  1. GraphStream: ha molto semplice API ed è un sacco di algoritmi. Offre molte strutture grafiche (dirette, non dirette, multigrafo, ...) e molti strumenti di visualizzazione.
  2. JUNG: questo quadro è stato intorno per un po ', quindi ha caratteristiche robuste e ben collaudati. Ultimo rilascio è stato nel 2010, in modo che la sintassi è un po 'vecchio.

Entrambi i framework hanno molti algoritmi e uno strumento di visualizzazione.

Se si è preoccupati della memoria e delle prestazioni e si ha solo bisogno della struttura dei dati del grafico (nessun algoritmo, nessuna visualizzazione), suggerirei AuroraGraphManager, che è la struttura dei dati del grafico che ho implementato e parte della mia tesi. Le strutture che ho suggerito sopra non erano buone per me perché dovevo gestire grafici piuttosto grandi (fino a 300 milioni di bordi).

Spero che aiuti!

Problemi correlati