Ragazzi salve, ho un problema, debbo poter realizzare una griglia illimitata in C senza utilizzare le matrici dinamiche, come posso fare? avete un'idea?
Grazie mille!
Ragazzi salve, ho un problema, debbo poter realizzare una griglia illimitata in C senza utilizzare le matrici dinamiche, come posso fare? avete un'idea?
Grazie mille!
Si vis Pacem Para Bellum
definisci "griglia illimitata"
perché quando si parla di informatica, non esiste nulla di illimitato
Ho bisogno di una griglia illimitata, non saprei spiegarlo con un'altro termine, una specie di matrice ma illimitata, che si adatta a seconda dell'ingresso che gli fornisco. Però non puo' essere una matrice dinamica!![]()
![]()
![]()
![]()
Si vis Pacem Para Bellum
In pratica vuoi una matrice che si adatti a quello che inserisci senza però che sia dinamica... Una bella contraddizione, non trovi?Originariamente inviato da Lord112
Ho bisogno di una griglia illimitata, non saprei spiegarlo con un'altro termine, una specie di matrice ma illimitata, che si adatta a seconda dell'ingresso che gli fornisco. Però non puo' essere una matrice dinamica!![]()
![]()
![]()
![]()
![]()
SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
Di questo libro e degli altri (blog personale di recensioni libri) | NO M.P. TECNICI
quoto sopra, non è possibile fare quello che tu chiedi
l'unica cosa che potresti fare è quella di usare una matrice statica delle massime dimensioni che assumi possa avere, ma probabilmente otterresti semplicemente uno stack overflow
DEVI usare l'allocazione dinamica
Ragazzi e se usassi alberi o altro? Non potrei riuscire a creare questa sorta di tabella? Grazie mille!
Si vis Pacem Para Bellum
Si certamente, ma io mi riferivo al non poter usare una matrice dinamica, non il concetto di dinamico in generale! Che soluzioni posso adottare? grz!
Si vis Pacem Para Bellum
beh una griglia può essere implementata facilmente anche con un vettore di liste o una lista di liste (per quanto sia davvero poco ottimale)
avresti ovviamente tutti gli svantaggi del caso come quelli dovuti al fatto che per accedere a posizione XY devi iterare X passi sulla lista principale e Y passi sulla lista del nodo X della lista principale. Giusto per fare uno dei tanti esempi
Non so se possa c'entrare, ma quello che chiedi è un po' come implementare il concetto di "vettore infinito"?
In tal caso, devi prima allocare staticamente una matrice mettendola però in una particolare struttura del tipo:
Poi nel modulo in cui l'hai definita, crei un'apposita funzione per inserire nuovi elementi... Questa, ogni volta che viene richiesto di inserire un nuovo elemento, controlla che gli indici 'indRow' e 'indCol' non superino la dimensione fisica di righe e colonne della matrice allocata inizialmente: se così fosse, dinamicamente verrebbe allocata una nuova matrice di dimensione maggiore in cui verrebbero copiati tutti gli elementi "salvati" fino a quel momento nella matrice precedente con l'aggiunta del nuovo elemento da inserire! Il vantaggio di tutto ciò è che chi utilizza a livello pratico la tua griglia crede che sia infinita veramente, anche se sotto ci sta questo piccolo trucchetto!codice:typedef struct {int mat [DIM][DIM]; int indRow; int indCol; int dimRow; int dimCol;} griglia;
Salute a voi, da Laikius!
--> Faber est suae quisque fortunae <--