Впровадження структур даних завжди зводиться до вузлів і покажчиків, так.
Але навіщо зупинятися на цьому? Реалізація вузлів і покажчиків зводиться до бітів.
Реалізація бітів зводиться до електричних сигналів, магнітного накопичувача, можливо, фібероптичних кабелів тощо (одним словом, фізика.)
Це скорочення заяви абсурду заяви: "Усі структури даних зводяться до вузлів та покажчиків". Це правда, але стосується лише впровадження.
Кріс Дата дуже вміє розмежовувати реалізацію та модель , хоча його нарис спрямований саме на бази даних.
Ми можемо піти трохи далі, якщо зрозуміємо, що між моделлю та реалізацією не існує єдиної лінії розмежування. Це схоже (якщо не тотожне) поняттю "шари абстракції".
У заданому шарі абстракції шари "нижче" ви (шари, на яких ви будуєте) є просто "деталями реалізації" для абстракції або моделі, на яку ви звертаєтесь.
Однак нижні шари абстракції самі по собі мають деталі реалізації.
Якщо ви читаєте посібник до програмного забезпечення, ви дізнаєтесь про рівень абстракції, "представлений" тим програмним забезпеченням, на якому ви можете будувати власні абстракції (або просто виконувати дії, такі як надсилання повідомлень).
Якщо ви дізнаєтесь деталі реалізації програмного забезпечення, ви дізнаєтесь, як творці лежать в основі абстракцій, які вони створили. "Деталі реалізації" можуть включати структури даних та алгоритми, серед іншого.
Однак ви не вважаєте, що вимірювання напруги є частиною "деталей реалізації" для будь-якого конкретного програмного забезпечення, навіть якщо це лежить в основі того, як "біти" та "байти" та "сховища" насправді працюють на фізичному комп'ютері.
Підсумовуючи, структури даних - це абстракційний шар для міркування про та впровадження алгоритмів та програмного забезпечення. Той факт, що цей шар абстракції побудований на деталях реалізації нижчого рівня, таких як вузли та покажчики, є правдивим, але не має значення в межах шару абстракції.
Велика частина справді розуміння системи - розуміння того, як абстракційні шари поєднуються між собою. Тому важливо зрозуміти, як реалізуються структури даних . Але той факт , що вони будуть реалізовані, не означає , що абстракція структур даних не існує.