Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    [java]Come si implementa un grafo orientato?

    Ciao..spero potete aiutarmi..dovrei implementare un grafo orientato, ho guardato vari programmi e adesso mi sento più confusa di quando ho iniziato. Alcuni implementano molte classi come: Arco, Nodo, Grafo, la lista arco e la lista grafo...altri solo la classe grafo. Io devo creare un grafo orientato con lista di adiacenza e ad ogni arco devo associare un peso, ma non so come fare. Qualcuno ha un esempio di grafo ben sviluppato e commentato che potrebbe essermi di aiuto? oppure potrebbe spiegarmi più o meno come fare per crearlo?
    Grazie..


  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2005
    Messaggi
    153
    Puoi utilizzare o liste di adiacenza o matrici di adiacenza.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2005
    Messaggi
    153
    Per essere più chiaro ti posto un'immagine
    Immagini allegate Immagini allegate

  4. #4
    Io dovrei farlo con lista di adiacenza. Il grafo è orientato.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2005
    Messaggi
    153
    Allora se fai riferimento al primo grafo dell'immagine precedente puoi osservare che quello è un grafo orientato. Ora se devi implementarlo con liste di adiacenza devi realizzare una struttura dati del genere(vedere l'immagine), per creare una struttura del genere puoi utilizzare oggetti della classe LinkedList.Spero di esserti stato di aiuto.
    Immagini allegate Immagini allegate

  6. #6
    Allora teoricamente so di dover creare una lista contenente i vertici e una lista che mantiene per ogni vertice l'informazione dei nodi al quale è legato con un arco. Praticamente...però..è tutta un'altra cosa...Oltre alla classe grafo, alla classe Nodo e Lista devo implementare altre classi?Il mio problema è il codice.

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2005
    Messaggi
    153
    No credo che dovresti implementare solo una classe Grafo, una Nodo, e una Arco(identifica il nodo di partenza e quello di arrivo ed eventuali attributi come puàò essere il peso dell'arco), una classe Lista non serve Il Java Framework Collection mette a disposizione la classe LinkedList che come si può capire dal nome implementa una lista lincata.

  8. #8
    All'interno della classe grafo ho implementato il metodo inserisci vertice:
    codice:
    public void insertVertex(Object info)
      {
        Lista riga = new Lista();
        riga.insert(info);
        adiacenza.insert(riga);
      }
    che richiame il metodo insert della lista:
    codice:
    public void insert(Object info)
      {
        if(head == null)
          head = tail = new Nodo(info);
        else
        {
          tail.next = new Nodo(info);
          tail = tail.next;
        }
        length++;
      }
    Il problema è che se inserisco 2 vertici uguali non lo capisce..e quindi poi mi ritrovo un grafo con più vertici uguali..ma non riesco a capire come inserire il controllo. Cosa dovrei aggiungere nel codice?

  9. #9
    puoi scaricarti GraphNview da : www.bioemulation.eu
    è un software open source veloce ed intuitivo per disegnare ed animare grafi...ciao e buon divertimento !!

  10. #10
    Utente di HTML.it L'avatar di Pastore12
    Registrato dal
    Oct 2008
    Messaggi
    1,051
    Originariamente inviato da MrBiotek
    puoi scaricarti GraphNview da : www.bioemulation.eu
    è un software open source veloce ed intuitivo per disegnare ed animare grafi...ciao e buon divertimento !!
    Sai.. credo che dopo due anni Sstellina81 abbia risolto in qualche modo...
    "Ethics are to me something private. Whenever you use it as an argument for why somebody_else should do something, you’re no longer being ethical, you’re just being a sanctimonious dick-head"
    Linus Torvalds

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.