You are on page 1of 15

DATA STRUCTURES

WHY DO WE NEED DATA STRUCTURES?

COMPUTERS ARE EVERYWHERE


Omnipresence of computers leads to the need for
Algorithms
Any discipline calls for problem solving
Problem solved Efficiently with effective methods.
Problem can be solved with the mix of four
fundamental areas:
machines

Languages

Foundations

Technologies

CONTD..
Machines- Processing Power, memory capacity,
etc.. needed for efficient execution of the solution
Languages Choice of language , its constraints,
version,
Foundations- Model of the problem, methods to
be implemented, performance measure
Technologies web based, mobile based, cloud
based,

INTRODUCTION TO DS
Core fields that belong to the FOUNDATIONS deal
with design , analysis and implementation of
algorithms for efficient solutions.
An algorithm can be defined as a process,
procedure or a recipe[ A specific set of rules to
obtain a definite output from a set of specific
inputs]
Data structures deals with the design and
implementation of efficient algorithms.
Ds deals with the study of methods techniques
and tools to organize or structured data.

ALGORITHM
The word algorithm originates from the Arabic
word, algorism which is linked to the Arabic
mathematician Abu Jafar Mohammed Ibn Musa Al
Khwarizmi(825 AD), who designed the first
algorithm for adding two numbers.
987
76+

987
76+
(carry 1)

(carry 1)
3

63

987
76+
(carry
1)
1063

DEFINITION OF AN ALGORITHM:

An Algorithm may be defined as a finite sequence


of instructions, each of which has a clear meaning
performed within a finite amount of effort in a
finite length of time.

STRUCTURE OF AN ALGORITHM:

Input Step
Assignment Step
Decision step
Repetitive Step
Output Step

CHARACTERISTICS OF AN ALGORITHM:
Finiteness Must terminate in a finite number of steps
Definiteness steps clearly defined or unambiguously
specified.
Generality generic to solve all problems of a particular
class
Effectiveness Keep it simple and sweet, basic enough
Input- Output An Algorithm must have certain initial
inputs and outputs may be intermediate and final.
An algorithm does not enforce any language. An
algorithm may be represented pictorial using flowcharts.
An algorithm encoded in a programming language is a
program.

DEVELOPMENT OF AN AGORITHM:
The steps involved in the development of an algorithm are:
Problem Statement- clear statement of the problem
Model Formulation mode for the solution is to be
formulated
Algorithm Design [role of DS begins here] right choice
of DS needs to be implemented for the efficiency of the
algorithm
Algorithm Correctness- Check for correctness
Implementation Write a code
Algorithm Analysis measuring the performance of the
algorithm in terms of time and space.
Program Testing
Documentation

DATA STRUCTURES AND


AGORITHMS
Design of efficient algorithm for the solution of
the problem calls for the need of appropriate
data structures.
Data on which the algorithm works should be
appropriately structured.

CLASSIFICATION

ABSTRACT DATA TYPE


A data type refers to the type of values that
variables in a programming language hold.
A list of elements is called as a data object.
The data objects which comprise the data
structure and their fundamental operations are
known as Abstract Data type(ADT).
ADT is defined as a set of data objects D
defined over a Domain L and supporting a list of
operations O.

EXAMPLE
Consider an ADT for the data structure of positive integers called
POSITIVE INTEGERS defined over a domain of integers Z +
supporting the operations of addition(ADD), Subtraction (SUB) and
check if positive (CHECK_POSITIVE). The ADT is defined as follows:

L = Z+ , D = {x | x L } , O = { ADD, SUB, CHECK_POSITIVE }

Operations
Addition of Positive integers INT1, INT2 into RESULT
ADD( INT1, INT2, RESULT)
Subtraction of Positive integers INT1, INT2 into RESULT
SUB( INT1, INT2, RESULT)
Check if a number INT! is positive INT1, INT2 into RESULT
CHECK_POSITIVE(INT1) (Boolean)

An ADT promotes data abstraction and focuses on what a data


structure does rather than how it does.

END

You might also like