Maison >Problème commun >Quels sont les avantages et les inconvénients de la structure de liste chaînée ?

Quels sont les avantages et les inconvénients de la structure de liste chaînée ?

青灯夜游
青灯夜游original
2019-03-11 15:23:0422920parcourir

Une liste chaînée est une liste linéaire de stockage lié, une structure de données dans laquelle les éléments sont liés à l'aide de pointeurs. L'article suivant vous présentera certains avantages et inconvénients de la structure de liste chaînée. J'espère qu'il vous sera utile.

Quels sont les avantages et les inconvénients de la structure de liste chaînée ?

Avantages de la structure de liste chaînée

Structure de données dynamique

Une liste chaînée est une structure de données dynamique, elle peut donc croître et diminuer au moment de l'exécution en allouant et en libérant de la mémoire. Il n'est donc pas nécessaire de donner la taille initiale de la liste chaînée.

Facile à insérer et à supprimer

L'insertion et la suppression de nœuds dans une liste chaînée sont vraiment simples. Contrairement aux tableaux, nous n'avons pas besoin de déplacer les éléments après les avoir insérés ou supprimés. Dans une liste chaînée, il suffit de mettre à jour l'adresse dans le pointeur suivant du nœud.

Utilisation élevée de la mémoire

Étant donné que la taille de la liste chaînée peut être augmentée ou diminuée au moment de l'exécution, il n'y a pas de gaspillage de mémoire. Dans le cas des tableaux, il y a beaucoup de gaspillage de mémoire, comme si nous déclarons un tableau de taille 10 et ne stockons que 6 éléments, alors 4 éléments d'espace sont gaspillés. Il n'y a pas de problème de ce type dans les listes chaînées car la mémoire n'est allouée qu'en cas de besoin.

Inconvénients de la structure des listes chaînées

Utilisation de la mémoire

Par rapport aux tableaux, dans les listes chaînées Le stockage d’éléments nécessite plus de mémoire. Étant donné que chaque nœud de la liste chaînée contient un pointeur, celui-ci nécessite de la mémoire supplémentaire.

Il est difficile à parcourir et pas facile à interroger

Il est difficile de parcourir des éléments ou des nœuds dans la liste chaînée et l'efficacité de l'accès aux éléments est faible. Nous ne pouvons accéder à aucun élément de manière aléatoire comme l'index. Par exemple, si nous voulons visiter le nœud à la position n, alors nous devons parcourir tous les nœuds qui le précèdent. Le temps nécessaire pour accéder au nœud est donc très long.

Le parcours inverse est difficile

Le parcours inverse dans une liste chaînée est très difficile. Dans le cas d'une liste doublement chaînée, le pointeur arrière est requis plus facilement mais de la mémoire supplémentaire est gaspillée, donc de la mémoire.

La complexité est O(n)

Ce qui précède est l'intégralité du contenu de cet article, j'espère qu'il sera utile à l'apprentissage de chacun. Pour un contenu plus passionnant, vous pouvez prêter attention aux colonnes de didacticiels pertinentes du site Web PHP chinois ! ! !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn