データ構造は、データをメモリに組織して保存し、効率的にアクセスして変更できるようにする方法です。**抽象データ型(ADT)**は、論理モデル——操作とその動作——であり、実装方法に依存しません。
ADT vs 実装
ADTはどのような操作が存在するかを記述します。データ構造は、どのように保存され、どのくらい高速に実行されるかを決定します。
text
ADT: Stack → push, pop, peek (LIFO behavior)
Implementations: → array-backed OR linked-list-backed
ADT: List → get(i), insert, remove
Implementations: → dynamic array OR linked list
コードで区別が重要な理由
python
stack = []
stack.append()
top = stack[-]
stack.pop()
