+ Rispondi
Pagina 1 di 3 1 2 3 UltimaUltima
Risultati da 1 a 10 su 27
  1. #1
    nic
    nic non è in linea
    Still Alive
    Iscritto dal
    22/09/2011
    Località
    Napoli
    Messaggi
    2,632

    Gestire decentemente una lista di n elementi

    Salve popolo (),
    c'è un problemino che mi sta assillando da un po' e non riesco a venirne a capo

    Allora, ho una serie di elementi (la quantità e il tipo vengono stabiliti una volta in real time).
    Questi elementi sono caratterizzati da determinati tipi, per esempio possono essere di tipo "chimico", "fisico" o "magia occulta"

    Esempio:
    Nome Valore Tipo
    H2O 500ml Chimico
    V S/T Fisico
    g 9.8m/s^2 Fisico
    MainThink salsiccia Magia occulta
    H2SO4 250ml Chimico

    Ora, ho bisogno di ordinare questi elementi distribuendoli ognuno nella propria categoria determinata dal proprio "tipo".
    Quando li leggo uno alla volta in tempo reale, non so l'elemento successivo di che tipo possa mai essere

    L'esempio di prima corrisponderebbe quindi a una lista del genere:

    codice:
    Lista
    |
    +---Chimico
    |   |
    |   +H2O ---> 500ml
    |   |
    |   +H2SO4 ---> 250ml
    |
    | 
    +---Fisico
    |   |
    |   +V ---> S/T
    |   |
    |   +g ---> 9,8 m/s^2
    | 
    +---Magia occulta
        | 
        +MainThink ---> salsiccia
    Piccolo problemino aggiuntivo: potrebbero non esserci proprio elementi di un determinato tipo, e in quel caso non si deve proprio generare la categoria

    Come faccio tutte queste cose bellissime in tempo reale senza sapere prima di che tipo sono i vari elementi? Avrei anche il problema che poi i valori devono essere aggiornati, quindi come pesco l'indice a cui corrisponde quel determinato elemento nella lista una volta che leggo il suo valore?

    Idee? suggerimenti? non avete capito niente?
    Ultima modifica: 28-12-2012 alle 19:52, di nic
    My name is Legion, for we are many.

  2. #2

    Iscritto dal
    22/09/2011
    Località
    Napoli, Italia
    Messaggi
    12,027
    Posso solo aiutarti per la terza domanda che hai posto: sei stato molto chiaro, almeno per me.
    Attento a te, mondo!

  3. #3
    I'm all out of bubblegum
    Iscritto dal
    01/07/2011
    Località
    R'lyeh
    Messaggi
    5,196
    Mano a mano che ricevi/leggi gli oggetti controlli se esiste la categoria appartenente e in caso negativo crei e aggiungi.

    Devi implementare la cosa in un qualche tipo di linguaggio?

  4. #4
    nic
    nic non è in linea
    Still Alive
    Iscritto dal
    22/09/2011
    Località
    Napoli
    Messaggi
    2,632
    Quote Originariamente inviato da GByTe Visualizza il messaggio
    Mano a mano che ricevi/leggi gli oggetti controlli se esiste la categoria appartenente e in caso negativo crei e aggiungi.
    Fino a qui ti seguo
    Successivamente dovrò leggere di nuovo tutti gli elementi (nello stesso ordine dell'originale) perché devo aggiornare i valori nella lista.
    Come faccio a sapere la posizione dell'elemento nella lista al quale cambiargli il valore?
    Non posso neanche cercare in tutta la lista nel campo "nome", perché spesso e volentieri ci sono più elementi con lo stesso nome + il metodo non mi sembra tanto cpu friendly (dovrei farlo ogni secondo)

    Quote Originariamente inviato da GByTe Visualizza il messaggio
    Devi implementare la cosa in un qualche tipo di linguaggio?
    vb net (), ma penso che il problema è "di principio" più che legato ad un linguaggio, bho
    My name is Legion, for we are many.

  5. #5

    Iscritto dal
    20/10/2011
    Località
    non ricordo
    Messaggi
    5,383
    Macro su Excel

  6. #6
    I'm all out of bubblegum
    Iscritto dal
    01/07/2011
    Località
    R'lyeh
    Messaggi
    5,196
    Più tardi rispondo che da Tapatalk è troppo sbatti

  7. #7
    nic
    nic non è in linea
    Still Alive
    Iscritto dal
    22/09/2011
    Località
    Napoli
    Messaggi
    2,632
    My name is Legion, for we are many.

  8. #8
    I'm all out of bubblegum
    Iscritto dal
    01/07/2011
    Località
    R'lyeh
    Messaggi
    5,196
    Ricapitoliamo (fanc Tapatalk che non mi mostrava la tabella):

    Tu hai una lista di entità da raggruppare secondo il valore della loro proprietà Tipo; gli oggetti devono poi essere ricercabili per Nome in quanto hai necessità di poterli modificare.
    Per ogni Tipo, quanti oggetti potresti dover memorizzare? Perchè se sono pochi ci stiamo fasciando la testa per nulla.

    Comunque, il primo raggruppamento Tipo -> Lista di oggetti lo farei tramite una (vedo che VB te le mette a disposizione) HashTable... ogni volta che esamini un oggetto controlli se il suo tipo appare come key dell'ht; se si, lo aggiungi alla lista (contenuta nel value dell'ht), altrimenti crei un record nell'ht e aggiungi il tutto.

  9. #9

    Iscritto dal
    26/05/2011
    Località
    Lugano, Svizzera
    Messaggi
    21,492
    anche per me tabella di hashing ma sono un po' preoccupato dalla frase "il metodo non mi sembra tanto cpu friendly (dovrei farlo ogni secondo)"

    Sicuramente una hashtable è un'ottima idea per un aggancio chiave-valore piuttosto efficace, resta da vedere poi come implementare il resto.
    Mi hai di nuovo preoccupato un po' quando hai detto che ci possono essere più cose con lo stesso 'nome' , sarebbe stato fico avere una seconda hashtable nidificata con il nome come chiave.


    Questo è un classico caso dove la risposta alla domanda non dipende tanto dalla struttura dati, ma dalla quantità di dati e da cosa effettivamente ci devi fare.
    Perché se mi dici ho 100 valori da aggiornare in tempo reale ogni secondo, non cominciamo a pensare a un array di stringhe di testo
    Verità #10 | Viva l'unto, reale o presunto

  10. #10
    nic
    nic non è in linea
    Still Alive
    Iscritto dal
    22/09/2011
    Località
    Napoli
    Messaggi
    2,632
    il numero è variabile, ma occhio e croce direi tre-quattro liste da una decina di elementi l'una
    ed è praticamente certo che ci siano più elementi della stessa lista con lo stesso nome

    ora vedo un po' che animale è questa hashtable
    My name is Legion, for we are many.


 
+ Rispondi
Pagina 1 di 3 1 2 3 UltimaUltima

Autorizzazioni

  • Non puoi iniziare nuove discussioni
  • Non puoi rispondere alle discussioni
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
Powered by vBulletin™ Version 4.1.5
Copyright © 2019 vBulletin Solutions, Inc. All rights reserved
SEO by vBSEO ©2011, Crawlability, Inc.
Fuso orario: UTC +1, sono le 09:45.