Alla ricerca di un determinato tipo di dati, se esiste

0

Sto cercando il tipo di certi tipi di dati.

L'idea principale di questo tipo di dati è descrivere una linea di produzione che contiene diversi passaggi. Ogni passo dovrebbe essere rappresentato come un "vertice" contenente un oggetto di qualsiasi tipo. Quindi per ogni "vertice" sono possibili "linee di sottoproduzione" che uniscono la linea.

Quindi potrebbe sembrare qualcosa di simile:

                  O   ->   O   ->   |                    #   subproductionline
                                    |                    #   joiningpoint
O   ->   O   ->   O   ->   O   ->   O   ->   O   ->   O  # main productionline
                                    |                    #   joiningpoint
         O   ->   O   ->   O   ->   |                    #   subproductionline
                           |                             #   joiningpoint
                  O   ->   |                             #subsubproductionline

Qualcuno di voi conosce questo tipo di dati?

Se dovessi codificare un tipo di dati simile ... Vedo due opzioni per farlo:

  • Un tipo di dati come una matrice (linea di produzione principale) contenente matrici (che contengono come primo elemento i dati contenenti di ciascun vertice) e il resto di elementi che contengono le linee di produzione secondarie come ricorsive questo tipo di dati

o

  • Un tipo di dati come matrice contenente i dati memorizzati nel vertice. L'ultimo elemento è l'elemento, in cui questa subproductionline si unisce, o un elemento specifico che rappresenta la fine di una linea di produzione principale, se è uno.

Che cosa pensi sia la soluzione migliore?

Il linguaggio di programmazione che penso di usare per è c / c ++.

    
posta xamiax 14.04.2014 - 16:31
fonte

3 risposte

1

Bene, dopo una lunga ricerca e passando attraverso i miei studi personali ho finito con LTS (sistema di transizione etichettato) con due diverse transizioni per esempio m (per main) e s (per sub)

quindi hai un set di nodi. e un insieme di transizioni, che contengono le informazioni, se si trova nella linea di produzione principale o se proviene da una linea di sub-produzione.

    
risposta data 15.09.2014 - 16:34
fonte
2

Personalmente lo definire come un grafico diretto . Ogni vertice (o nodo) è una fase di elaborazione e ogni spigolo collega due fasi in un processo di produzione.

    
risposta data 14.04.2014 - 16:55
fonte
1

Quello che hai disegnato è un grafico diretto. È molto probabile un Albero Diretto, ma potrebbe essere un Grafico Aciclico Diretto. Il diagramma fornito e la mia comprensione del processo non sarebbero compatibili con i cicli, ma non sono chiaro se ci sia solo fan-in o ci sia anche fan-out.

Grafici di questo tipo sono strutture dati ben note e accuratamente analizzate. Esistono numerosi algoritmi per fare cose interessanti come trovare percorsi, potare, riordinare, pesare e così via.

In C ++ potresti implementarlo come nodo con una raccolta di puntatori ad altri nodi. Se si tratta di un albero e se è necessario navigare in una sola direzione, è necessario un solo puntatore "in basso" per nodo.

Ci sono funzioni fornite nelle librerie standard per rendere le strutture di implementazione come queste molto semplici. Si potrebbe dire che il C ++ è stato progettato per risolvere questo problema (e simili).

    
risposta data 02.06.2014 - 12:41
fonte

Leggi altre domande sui tag