La mia domanda è molto semplice, si può usare C++, implementare una struttura di dati dell'elenco di collegamenti senza utilizzare i puntatori (nodi successivi)? Per qualificare ulteriormente la mia domanda, intendo si può creare una struttura di dati dell'elenco collegato utilizzando solo le istanze di classe.È un'implementazione di elenco collegato senza utilizzare i puntatori possibili o no?
Una definizione nodo comune come potrebbe essere così:
template<typename T>
struct node
{
T t;
node<T>* next;
node<T>* prev;
};
Sono consapevole di std::list
ecc, sono solo curioso di sapere se il suo possibile o no - e se sì, come? Gli esempi di codice saranno molto apprezzati.
Ulteriori chiarimenti:
- inserimenti devono essere O (1).
- L'attraversamento dovrebbe essere non più di O (n).
- Un nodo reale e un nodo null devono essere differenziabili.
- La dimensione dell'elenco collegato deve essere limitata solo dalla quantità di memoria disponibile.
È questo compito? –
@Mike Atlas: non solo curiosità. –
Suppongo che l'utilizzo di puntatori intelligenti come 'auto_ptr' o' shared_ptr' sarebbe un imbroglio. –