L'implementazione di più stack in un singolo array (elenco collegato) potrebbe utilizzare la memoria in modo più efficiente.
Se hai tre stack in tre array separati, ognuno di essi avrebbe bisogno di uno spazio pre-allocato per consentire elementi futuri, e ciascuno avrebbe bisogno di una nuova memoria da allocare se si riempie. Combinandoli a un singolo array si ridurrebbe la quantità di memoria "extra" che è pre-allocata per le operazioni future e si dovrà allocare nuova memoria meno volte.
Tuttavia, anche gli stack in un singolo array sarebbero più complicati da gestire. Gli elementi dei tre stack saranno intercalati l'uno con l'altro. Quando gli elementi vengono rimossi da una pila, potrebbe lasciare degli spazi. Devi quindi essere in grado di cercare e riempire queste lacune in seguito quando aggiungi un nuovo elemento.
Con la quantità di memoria normalmente disponibile in questi giorni, combinare gli stack in questo modo sarebbe un'ottimizzazione piuttosto estrema. Raramente penseresti di farlo. Ma potrebbe essere utile occasionalmente.
Aggiornamento: Sarebbe molto utile in alcuni casi specializzati. Se si dispone di una situazione in cui si spostano frequentemente elementi tra le pile, la memorizzazione delle pile in un singolo array sarebbe più efficiente. Spostare l'elemento X dallo stack A allo stack B richiederebbe solo la modifica dei collegamenti.