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