Je ne comprends pas la différence entre une liste à double extrémité et à double lien.
Quelle est la différence majeure entre les deux?
Dans une liste doublement liée, chaque nœud a deux pointeurs. Un vers son prochain noeud et un autre vers son précédent noeud.
Dans une liste chaînée à double extrémité, chaque nœud a un seul pointeur qui pointe vers son nœud suivant. Sa différence par rapport à la liste chaînée à une extrémité est qu’au lieu d’un seul nœud "tête", il contient deux pointeurs de ce type ("premier" et "dernier"), de sorte que quelqu'un peut insérer des éléments il.
(La dernière image n'est pas très nette, mais elle attrape le point des deux bouts.)
Une liste doublement chaînée est une liste où les éléments ont des pointeurs vers l'élément avant et après dans la liste.
De mon point de vue, une liste à double extrémité est identique à une deque. C'est une file d'attente à partir de laquelle vous pouvez ajouter et supprimer des éléments du haut et du bas.
Simple lié est un sens et utilise moins de mémoire et la complexité de l'insertion est O (n). Bien que la double liaison soit dans les deux sens (suivant et précédent), elle utilise plus de mémoire que la liste unique et la complexité d'insertion et de suppression est O (n).
Une liste à double extrémité est semblable à une liste chaînée ordinaire, mais elle possède une caractéristique supplémentaire: une référence au dernier lien ainsi qu'au premier. au lieu d'un. Le premier est le lien suivant, comme dans les listes ordinaires. La seconde est au lien précédent.