human
Structures de données, listes chaînées et arbres binaires J'ai toujours été confus, bien qu'immédiatement après avoir fermé mon livre, j'ai l'impression d'avoir compris. Il manque toujours quelque chose. Explique comme si j'avais cinq ans.
gpt
Les listes chaînées sont une sorte de tableau, la principale différence est qu'une liste chaînée peut changer de longueur, alors qu'un tableau est défini statiquement. Chaque élément d' une liste chaînée a : * le contenu * un pointeur vers l' élément suivant * facultativement , un pointeur vers l' élément précédent ( double liste chaînée ) Il est important de se rappeler que le dernier élément doit avoir NULL comme pointeur suivant , et le premier élément, si vous utilisez une double liste chaînée, doit avoir l'élément précédent pointant vers NULL. Sauf si vous voulez quelque chose de spécial comme une liste circulaire. Si vous ne vous souvenez pas de le faire, vous rencontrerez des erreurs de segmentation. La manière la plus courante de parcourir une liste chaînée est (en C, mais d'autres langages ont une syntaxe similaire) : list * tmp; liste * tête ; //le premier élément de votre liste for(tmp = head ; tmp- > next ; tmp = tmp- > next ) { //do stuff } Les arbres binaires sont des listes où chaque élément a deux enfants (généralement nommés left et right ) . Il n'y a pas de différence importante avec une liste chaînée. Ainsi , vous aurez besoin : du contenu , d' un pointeur vers l' enfant de gauche et d' un pointeur vers l' enfant de droite . Ici aussi , un élément sans enfant ( gauche ou droit ou les deux ) doit avoir ces pointeurs égaux à NULL . Cette structure de données est généralement parcourue par la récursivité, quelque chose comme ça (cette fois en pseudocode) : function traverse(tree * root ) { // si vous avez un arbre comme celui-ci : A B C D E //ce programme affichera A B D E C print ( root- > données ) ; si racine-> gauche ! = NULL then traverse ( root-> left ) ; si root-> correct ! = NULL then traverse ( root-> right ) ; } ~~Remarque : > ne semble pas fonctionner, il est remplacé par & gt;~~ défaut d'aperçu en direct RES