Une liste est une structure de données qui permet de stocker une séquence d'objets d'un même type. En cela, les listes ressemblent aux tableaux. La séquence d'entiers 3, 7, 2, 4 peut être représentée à la fois sous forme de tableau ou de...
moreUne liste est une structure de données qui permet de stocker une séquence d'objets d'un même type. En cela, les listes ressemblent aux tableaux. La séquence d'entiers 3, 7, 2, 4 peut être représentée à la fois sous forme de tableau ou de liste. La notation [3, 7, 2, 4] représentera la liste qui contient cette séquence. Il y a cependant des différences fondamentales entre listes et tableaux :-Dans un tableau on a accès immédiat à n'importe quel élément par son indice (accès dit aléa-toire), tandis que dans une liste chaînée on a accès aux éléments un après l'autre, à partir du premier élément (accès dit séquentiel).-Un tableau a une taille fixe, tandis qu'une liste peut augmenter en taille indéfiniment (on peut toujours rajouter un élément à une liste). Définition (récursive) : En considérant que la liste la plus simple est la liste vide (notée [ ]), qui ne contient aucun élément, on peut donner une définition récursive aux listes chaînées d'éléments de type T :-la liste vide [ ] est une liste ;-si e est un élément de type T et l est une liste d'éléments de type T, alors le couple (e, l) est aussi une liste, qui a comme premier élément e et dont le reste des éléments (à partir du second) forment la liste l. Cette définition est récursive, car une liste est définie en fonction d'une autre liste. Une telle définition récursive est correcte, car une liste est définie en fonction d'une liste plus courte, qui contient un élément de moins. Cette définition permet de construire n'importe quelle liste en partant de la liste vide. Conclusion : la liste chaînée est une structure de données récursive. La validité de cette définition récursive peut être discutée d'un point de vue différent. Elle peut être exprimée sous la forme suivante : quelque soit la liste l considérée,-soit l est la liste vide [ ],-soit l peut être décomposée en un premier élément e et un reste r de la liste, l=(e, r). Cette définition donne une décomposition récursive des listes. La condition générale d'arrêt de récursivité est pour la liste vide. Cette décomposition est valide, car la liste est réduite à chaque pas à une liste plus courte d'une unité. Cela garantit que la décomposition mène toujours à une liste de longueur 0, la liste vide (condition d'arrêt).