INF210 Lec1 Data Structures
INF210 Lec1 Data Structures
INF 210
Fall 2022-2023
Lecture 1
Introduction
Instructor
Dr/ Ayman Soliman & DR/ OSAMA FAROUK
➢ Contents
1) Course Contents.
2) Grading System & distribution.
3) Course Information.
4) Course Policy.
5) Objectives.
6) Course Outcomes
7) Why we’re studying data structures and algorithms?
❑ How to get the most out of homework
❑ What is an algorithm?
❑ Data Structure
8/10/2022 2
1) Course Contents.
➢ Abstract Data Types (ADT).
➢ Stacks: Definition and operations, implementation of stacks with
array and records, applications of stacks.
➢ Queues: Definitions, implementation of circular queues, applications
of queues.
➢ Linked lists: Singly linked lists, linked stacks, linked queues, and
doubly linked lists, application of linked lists.
➢ Tree structures, binary trees: binary tree traversals, binary tree search.
➢ Searching Definitions, sequential search.
8/10/2022 3
2) Grading System & distribution.
Total score
(100%)
Section & HW Lec. Reports & Projects Midterm exam Final exam
(10%) (10%) (10%) (30%) (10+30%)
8/10/2022 4
3) Course Information.
Lecture: Wednesday (09:00 - 11:25 AM)
Wednesday (11:25 - 13:50 PM)
References:
➢Data Structure and Algorithms in C++, 3rd Edition. Mark Allen Weiss
➢ https://www.geeksforgeeks.org/data-structures/
➢https://www.tutorialspoint.com/data_structures_algorithms/data_structures_basics.htm
➢Lecture Notes.
Instructor:
Dr. Ayman Soliman
[email protected]
TAs:
Eng.
8/10/2022 5
4) Course Policy.
➢ Be on time and cell phones should be silent or off
during the lecture.
8/10/2022 6
5) Objectives
➢ Students at the end of course should be able to do the following:
8/10/2022 7
5) Objectives
6) To impart the basic concepts of data structures and
algorithms
8/10/2022 9
6) Why are you
here?
8/10/2022 10
7) Data structures are fundamental.
The
Computational
Operating Systems
Lens Cryptography
Scheduling algorithms Fast number theoretic and
algebraic algorithms
8/10/2022 11
7) Data structures are useful.
8/10/2022 13
Let’s Paly
8/10/2022 14
9) Everyone can succeed in this class!
❑ Work hard
❑ Work from the first day of the term not before the exam by two days
❑ Ask for help
❑ Work hard
❑ Work hard
❑ Work hard
❑ Work hard
❑ Work hard
❑ Work hard
❑ Work hard
❑ Work hard
❑ Work hard
❑ Work hard
8/10/2022 15
10) What is an algorithm?
❑ An algorithm is a procedure to resolve a problem by means of a finite sequence
of basic atomic steps.
❑ The procedure must be defined in a not ambiguous and accurate way to be
executed automatically
8/10/2022 16
11) Algorithm vs Program
❑ An algorithm describes (at high level) a computation procedure which when
executed produces a result.
❑ A program is the implementation of an algorithm by means of a programming
language
8/10/2022 17
12) Data Structure
❑ The title of this course is “Data Structure”
❑ DEFINITION:
➢ A way to store, organize, and manage information (or data) in a way that allows
you the programmer to easily access or modify the values within them
❑ VERY IMPORTANT: no single data structure works well for all purposes, and
so it is important to know the strengths and limitations of several of them
8/10/2022 18
13) What is Data Structure
❑ Definition: a representation and organization of data
❑ Representation:
➢Data can be stored variously according to their type (for example signed,
unsigned, etc.)
➢example: the representation of integers in memory
❑ Organization:
➢The way of storing data changes according to the organization (ordered, not
ordered, list, tree, etc.)
8/10/2022 19
14) Data Structures
❑ Examples of basic data objects:
➢Boolean {false, true}
➢Digit {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
➢Letter {A, B, …, Z, a, b, …, z}
➢Natural Number {0, 1, 2, …}
➢Integer {0, +1, +2, …, -1, -2, …}
➢String {a, b, …, aa, ab, ac, …}
8/10/2022 22
Introduction - What are Data Structures?
❑ Basic Data Structures
▪ Password Databases
▪ Online Directories
8/10/2022 23
Introduction - Course Overview
❑ We’ll Start with efficiency
▪ The metrics used to judge the speed and efficiency of different data
structures
8/10/2022 24
Introduction - Course Overview
❑ The Basics
▪ Arrays and ArrayLists
Arrays ArrayLists
8/10/2022 25
Introduction - Course Overview
❑ Intermediate Data Structures
▪ A little more complicated than the basics
▪ Have special attributes which make them stand out
Queues
Stacks
8/10/2022 26
Introduction - Course Overview
❑ Intermediate Data Structures
▪ A little more complicated than the basics
▪ Have special attributes which make them stand out
Doubly-LinkedLists
LinkedLists
8/10/2022 27
Introduction - Course Overview
❑ Intermediate Data Structures
▪ A little more complicated than the basics
▪ Have special attributes which make them stand out
Dictionaries Hash-Tables
8/10/2022 28
Introduction - Course Overview
❑ Tree-Based Data Structures
▪ Less linear, more abstract
Trees Tries
8/10/2022 29
Introduction - Course Overview
❑ Tree-Based Data Structures
▪ Less linear, more abstract
Graphs
Heaps
8/10/2022 30
Introduction - Course Overview
Arrays Hash-Tables
ArrayLists Trees
Stacks Tries
Queues Heaps
LinkedLists Graphs
Doubly-LinkedLists Searching algorithms
Dictionaries Sequential search
8/10/2022 31
8/10/2022 32