Implementacja struktur danych zawsze sprowadza się do węzłów i wskaźników, tak.
Ale po co się tu zatrzymywać? Implementacja węzłów i wskaźników sprowadza się do bitów.
Implementacja bitów sprowadza się do sygnałów elektrycznych, przechowywania magnetycznego, być może kabli światłowodowych itp. (Jednym słowem, fizyka.)
To jest reductio ad absurdum stwierdzenia: „Wszystkie struktury danych sprowadzają się do węzłów i wskaźników”. To prawda, ale dotyczy tylko implementacji.
Chris Date bardzo dobrze rozróżnia implementację i model , choć jego esej jest skierowany w szczególności do baz danych.
Możemy pójść nieco dalej, jeśli zdamy sobie sprawę, że nie ma jednej linii podziału między modelem a implementacją. Jest to podobne (jeśli nie identyczne) do pojęcia „warstw abstrakcji”.
Na danej warstwie abstrakcji warstwy „pod” tobą (warstwy, na których budujesz) są zwykłymi „szczegółami implementacji” abstrakcji lub modelu, do którego się odnosisz.
Jednak same dolne warstwy abstrakcji mają szczegóły implementacji.
Jeśli czytasz instrukcję oprogramowania, dowiadujesz się o warstwie abstrakcji „prezentowanej” przez ten program, na której możesz budować własne abstrakcje (lub po prostu wykonywać czynności, takie jak wysyłanie wiadomości).
Jeśli poznasz szczegóły implementacji oprogramowania, dowiesz się, jak twórcy zbudowali abstrakcje, które zbudowali. „Szczegóły implementacji” mogą obejmować między innymi struktury danych i algorytmy.
Jednak nie uważa się, że pomiar napięcia jest częścią „szczegółów implementacji” jakiegokolwiek konkretnego oprogramowania, mimo że leży to u podstaw tego, jak „bity”, „bajty” i „pamięć” faktycznie działają na komputerze fizycznym.
Podsumowując, struktury danych są warstwą abstrakcji do wnioskowania o algorytmach i oprogramowaniu oraz ich implementacji. Fakt, że ta warstwa abstrakcji jest zbudowana na szczegółach implementacji niższego poziomu, takich jak węzły i wskaźniki, jest prawdziwy, ale nie ma znaczenia w warstwie abstrakcji.
Dużą częścią naprawdę zrozumienia systemu jest zrozumienie, w jaki sposób warstwy abstrakcji pasują do siebie. Dlatego ważne jest, aby zrozumieć, w jaki sposób wdrażane są struktury danych . Ale fakt, że są one wdrożone, nie oznacza, że abstrakcja struktur danych nie istnieje.