Professional Documents
Culture Documents
Lecture 1
Lecture 1
Data Structures
Aamir Zia
Introduction
• Course outline
• Rules and regulations
• Course contents
• Good Programming Practices
• Data Types and Data Structures
• ADT
Course Description
• Title: Data Structures and Algorithms
• Code: CMP-210
• Credit Hours:3
• Prerequisite: OOP
• Follow Up: Design and Analysis of Algorithms
Contents
• Introduction to Algorithms
• Arrays
• Stacks
• Recursion
• Queues
• Lists and its variations
• Trees
• Hashing
• Searching and sorting Techniques
• Graphs
Good Programming Practices
• Programs and subprograms should be well structured.
Use a modular approach for a complex problem.
Use the basic control structures when developing each code
segment.
Sequence, selection, repetition
Use local variables within subprograms.
Use parameters to pass information to and from subprograms.
Avoid global Variables.
• All source code should be documented.
Each program should include opening documentation.
Each subprogram should be documented in a manner similar to
programs.
Comments should be used to explain key code segments and / or
segments whose purpose or design is not obvious.
Use meaningful identifiers.
Good Programming Practices
• Source code should be aesthetic; it should be formatted in a
style that enhances its readability.
Put each statement of the program on a separate line.
Use uppercase and lowercase letters in a way that contributes to
program readability.
Put each {and} on separate lines.
Align each {and corresponding}.
When a statement is continued from one line to another, indent
the continued line(s).
Align the identifiers in each constant and variable declaration,
placing each on a separate line.
Insert blank lines between declarations and statements and
between blocks of statements to make clear the structure of the
program.
Data Types
In computer programming, a data type is a classification
identifying one of various types of data, such as floating-point,..
• Simple (basic)
– char, int, float, double
• Modifiers
– signed, unsigned
• Qualifiers
– static, const, volatile, void
• Structured (derived)
– Arrays, structures, unions, classes
• Advanced (composite)
– List, queues, stacks, trees, graphs
Data Structures and algorithms
• Algorithms
– Outline, the essence of a computational procedure, step by step
instruction
• Program
– An implementation of an algorithm in some computer
programming languages
• Data Structures Data may be organized in many
– Goal: organize data different ways. the logical and
– Criteria: facilitate efficient mathematical model of a
• storage of data particular organization of data
is called Data structure
• retrieval of data
• manipulation of data
• Process:
– select and design appropriate data types
Need for Data Structures
Data structures organize data
more efficient programs.
More powerful computers more
complex applications.
More complex applications
demand more calculations.
Organizing Data
Any organization for a collection
of records that can be searched,
processed in any order, or
modified.
The choice of data structure and
algorithm can make the difference
between a program running in a
few seconds or many days.
Efficiency
A solution is said to be efficient if
it solves the problem within its
resource constraints.
– Space
– Time
a collection of
related data items together with
an assoicated set of operations
Why "abstract?"
Data, operations, and relations are studied
independent of implementation.
consists of
storage structures (aka data structures) to store the data items
and
algorithms for the basic operations and relations.