Marc Boyer a écrit :
J'ai employé le terme de liste dans un sens informel, ça ne change rien au problème, ce qui compte c'est qu'on ait une succession d'"objets" (au sens informel encore).
Et pourtant ça change plein de choses, en algorithmique déjà,
"Plein de choses", ça se discute parce que ça dépend du point de vue ou de la hauteur où tu te places. Un algorithme change-t-il vraiment si la structure de données est une liste ou un tableau ? Le tri par insertion ou le tri fusion s'implémentent plus facilement avec une liste certes mais il me semble que la complexité n'est pas modifiée, la liste va juste t'épargner des recopies mais les algorithmes dans leur principe restent strictement identiques. Idem quand tu travailles avec des graphes, que tu travailles avec des matrices d'adjacence ou des listes d'adjacence, l'algorithme de Dijkstra reste l'algorithme de Disjstra.
Idem pour les nuances qu'on peut faire entre itératif et récursif, un DFS reste un DFS.
et en C
encore plus.
De toute façon en C, la notion de liste chainée n'existe pas officiellement. Et puis un jour faudra qu'on discute des réels avantages des listes chaînées, je trouve ça souvent très couteux (multiples malloc et free faits séquentiellement).
Ben, le problème de faire une recherche dichotomique dans une
liste.
Oui, d'accord, dans le sens où on n'a plus d'accès direct.