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.
Data Structures
By Muhammad Magdi
Data Structures
- 281