Zwei Dinge:
Das Codieren einer verknüpften Liste ist zweifellos etwas mehr Arbeit als das Verwenden eines Arrays, und er fragte sich, was den zusätzlichen Aufwand rechtfertigen würde.
Codieren Sie niemals eine verknüpfte Liste, wenn Sie C ++ verwenden. Verwenden Sie einfach die STL. Wie schwierig die Implementierung ist, sollte niemals ein Grund sein, eine Datenstruktur einer anderen vorzuziehen, da die meisten bereits implementiert sind.
Was die tatsächlichen Unterschiede zwischen einem Array und einer verknüpften Liste betrifft, ist für mich das Wichtigste, wie Sie die Struktur verwenden möchten. Ich werde den Begriff Vektor verwenden, da dies der Begriff für ein anpassbares Array in C ++ ist.
Die Indizierung in eine verknüpfte Liste ist langsam, da Sie die Liste durchlaufen müssen, um zum angegebenen Index zu gelangen, während ein Vektor im Speicher zusammenhängend ist und Sie mithilfe der Zeigermathematik dorthin gelangen können.
Das Anhängen an das Ende oder den Anfang einer verknüpften Liste ist einfach, da Sie nur einen Link aktualisieren müssen, wobei Sie in einem Vektor möglicherweise die Größe ändern und den Inhalt kopieren müssen.
Das Entfernen eines Elements aus einer Liste ist einfach, da Sie nur ein paar Links trennen und sie dann wieder zusammenfügen müssen. Das Entfernen eines Elements aus einem Vektor kann entweder schneller oder langsamer sein, je nachdem, ob Sie sich für eine Bestellung interessieren. Das Vertauschen des letzten Elements über das Element, das Sie entfernen möchten, ist schneller, während das Verschieben nach dem Herunterfahren langsamer ist, aber die Reihenfolge beibehält.