Un trie stesso è un termine generico per una struttura dati che memorizza le chiavi implicitamente come percorso. Se cerchi google, vedrai che ci sono diverse implementazioni per una struttura di dati di ricerca in cui le chiavi sono memorizzate in questo modo, e quindi, ci saranno diverse complessità spaziali per ciascuno. Uno che mi viene in mente dai miei studi personali è il Trie R-Way, che usa una matrice di dimensione R (se le tue chiavi possono essere un qualsiasi carattere ASCII, R sarebbe 256) per memorizzare riferimenti a caratteri aggiuntivi nella chiave. Ogni nodo in questa struttura deve quindi allocare memoria per una matrice di dimensione R, quindi in termini di complessità spaziale, questo trie è O (RN) dove N è il numero di chiavi.
Un altro trie che ho studiato è il DeLabrandais trie, che usa liste collegate invece di matrici per memorizzare riferimenti a caratteri aggiuntivi nella chiave. Dal punto di vista della memoria, questo trie è effettivamente migliore perché alloca la memoria come necessario per ogni carattere aggiuntivo anziché allocare un pezzo gigantesco che sarà probabilmente parzialmente vuoto (assumendo una distribuzione non uguale di caratteri nelle chiavi memorizzate). Tuttavia, questa struttura richiederà più tempo per cercare un tasto, in quanto si perde l'accesso diretto agli array di riferimento e potrebbe ora dover attraversare un elenco collegato. Asintoticamente, il trie DLB (penso, ma potrebbe essere sbagliato) è ancora O (RN), ma il suo consumo di memoria è praticamente migliore nella maggior parte dei casi a causa della distribuzione non equa dei caratteri nelle chiavi che ho menzionato in precedenza.