Data Structures
Muhammad Magdi
Agenda
What are Data Structures?
Let's start from arrays.
Built-in DS.
Why DS?
How to create a DS?
DS vs OOP approach.
Resources
What are Data Structures?
Data + Operations over them
Array
How to:
Search (a value or predicate)
Insert
Delete
Match (strings)
Uniqueness Guarantee
Order Guarantee
etc...
Built-in & Commonly used DS
Queue
Stack
Heap
AVL Tree
B Tree
Hash
Why do people need DS?
Arrays are not enough.
Efficiency.
Functionality.
The same data can be represented/organized in different ways.
We adore abstraction.
We prefer 123 over 0000000001111011.
Encapsulation.
How to add 123 to 5?
Why should I learn DS?
Skill.
Variety & Trading-off.
Building a composite/complex one.
How to create a DS?
Procedural.
Object Oriented.
Functional.
Pure functions? Immutability?
Data sharing!
Other...
What's special about DS's OOP?
Resources
Data structures And Algorithms in C++ (Goodrich).
Data structures And Algorithms in C++ (Drozdek).
Introduction to Algorithms (CLRS).
Dr. Mustafa Saad's courses.
Coach Muhammad Abdulwahab's sessions.
Made with Slides.com