La mise en œuvre des structures de données se résume toujours aux nœuds et aux pointeurs, oui.
Mais pourquoi s'arrêter là? L'implémentation des nœuds et des pointeurs se résume à des bits.
La mise en œuvre des bits se résume aux signaux électriques, au stockage magnétique, peut-être aux câbles à fibres optiques, etc. (En un mot, la physique.)
Il s'agit de la reductio ad absurdum de l'énoncé «Toutes les structures de données se résument aux nœuds et aux pointeurs». C'est vrai, mais cela ne concerne que la mise en œuvre.
Chris Date sait très bien faire la différence entre l' implémentation et le modèle , bien que son essai vise en particulier les bases de données.
Nous pouvons aller un peu plus loin si nous réalisons qu'il n'y a pas une seule ligne de démarcation entre le modèle et la mise en œuvre. Ceci est similaire (sinon identique) au concept de «couches d'abstraction».
À une couche d'abstraction donnée, les couches "en dessous" de vous (les couches sur lesquelles vous construisez) ne sont que des "détails d'implémentation" pour l'abstraction ou le modèle auquel vous vous adressez.
Cependant, les couches d'abstraction inférieures elles - mêmes ont des détails d'implémentation.
Si vous lisez un manuel pour un logiciel, vous découvrez la couche d'abstraction "présentée" par ce logiciel, sur laquelle vous pouvez créer vos propres abstractions (ou simplement effectuer des actions telles que l'envoi de messages).
Si vous apprenez les détails d'implémentation du logiciel, vous apprendrez comment les créateurs ont étayé les abstractions qu'ils ont construites. Les "détails d'implémentation" peuvent comprendre, entre autres, des structures de données et des algorithmes.
Cependant, vous ne considéreriez pas la mesure de tension comme faisant partie des «détails de mise en œuvre» pour un logiciel particulier, même si cela sous-tend le fonctionnement réel des «bits» et des «octets» et du «stockage» sur l'ordinateur physique.
En résumé, les structures de données sont une couche d'abstraction pour le raisonnement et la mise en œuvre d'algorithmes et de logiciels. Le fait que cette couche d'abstraction repose sur des détails d'implémentation de niveau inférieur tels que les nœuds et les pointeurs est vrai mais non pertinent au sein de la couche d'abstraction.
Une grande partie de la compréhension réelle d'un système consiste à comprendre comment les couches d'abstraction s'emboîtent. Il est donc important de comprendre comment les structures de données sont mises en œuvre. Mais le fait qu'elles soient implémentées ne signifie pas que l'abstraction des structures de données n'existe pas .