0% found this document useful (0 votes)
124 views

Data Structures Presentation

The document provides information about data structures and algorithms. It defines an algorithm as a finite set of steps to solve a problem and lists the key characteristics of algorithms as having input, output, being unambiguous, and terminating in a finite number of steps. It also defines a data structure as an arrangement of data that allows for efficient storage and retrieval of data. Common data structures include arrays, linked lists, stacks, queues, trees, and graphs. The document discusses linear and non-linear data structures and provides examples of operations and implementations for common data structures like arrays.

Uploaded by

SAI PAVAN
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
124 views

Data Structures Presentation

The document provides information about data structures and algorithms. It defines an algorithm as a finite set of steps to solve a problem and lists the key characteristics of algorithms as having input, output, being unambiguous, and terminating in a finite number of steps. It also defines a data structure as an arrangement of data that allows for efficient storage and retrieval of data. Common data structures include arrays, linked lists, stacks, queues, trees, and graphs. The document discusses linear and non-linear data structures and provides examples of operations and implementations for common data structures like arrays.

Uploaded by

SAI PAVAN
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 59

SATHYABAM

A
INSTITUTE OF SCIENCE AND TECHNOLOGY
Deemed to be University
Declared as category ‘A’ University by MHRD, Govt. of India
Jeppiaar Nagar, Rajiv Gandhi Salai, Chennai – 600 119, Tamil Nadu. India.

SUBJECT NAME:Data Structures

SUBJECT CODE: SCSA1203

UNIT : I
UNIT-I
 Introduction Data Structures - Need - classification - operations –Abstract data types (ADT) -
Array - characteristics - types - storage representations. Array Order Reversal-Array Counting
or Histogram-Finding the maximum Number in a Set, Recursion- Towers of Hanoi-Fibonacci
series-Factorial.
ALGORITHM
 Algorithm is finite set of logic or instructions, written in order for accomplishing the certain
predefined task.
 Each algorithm must have:
 Specification: Description of the computational procedure.
 Pre-conditions: The condition(s) on input.
 Body of the Algorithm: A sequence of clear and unambiguous instructions.
 Post-conditions: The condition(s) on output.
CHARACTERISTICS OF AN
ALGORITHM
 Input: An algorithm must have 0 or well defined inputs.
 Output: An algorithm must have 1 or well defined outputs, and should match with the desired
output.
 Finiteness: An algorithm must be terminated after the finite number of steps.
 Effectiveness: An algorithm must have step-by-step directions which is independent of any
programming code.
 Definiteness: An algorithm must be unambiguous and clear.
MAJOR CATEGORIES OF
ALGORITHMS
 Sort: Algorithm developed for sorting the items in certain order.
 Search: Algorithm developed for searching the items inside a data structure.
 Delete: Algorithm developed for deleting the existing element from the data structure.
 Insert: Algorithm developed for inserting an item inside a data structure.
 Update: Algorithm developed for updating the existing element inside a data structure.
PERFORMANCE OF
ALGORITHM
 Time complexity: It is a way of representing the amount of time needed by a program to run to
the completion.
 Space complexity: It is the amount of memory space required by an algorithm, during a course
of its execution.
DATA
 Data means a value or set of values.
 for example, student’s name and its id are the data about the student.
STRUCTURE
 A structure is an arrangement of and relations between parts or elements.
 It has a form or shape.
DATA STRUCTURE
 A data structure is an arrangement of data elements.

 Data Structure can be defined as the group of data elements which provides an efficient way of storing and organizing
data in the computer so that it can be used efficiently.
 Examples of Data Structures are arrays, Linked List, Stack, Queue, etc

 Data Structures are widely used in almost every aspect of Computer Science i.e. Operating System, Compiler Design,
Artificial Intelligence, Graphics and many more.
DATA STRUCTURE
 Data Structure mainly specifies the following three things

o Organization of Data
o Accessing methods
o Processing alternatives for information

Algorithm + Data Structure = Program


ADVANTAGES OF DATA
STRUCTURES
 Efficiency: Efficiency of a program depends upon the choice of data structures.
 Reusability: Data structures are reusable, i.e. once we have implemented a particular data
structure, we can use it at any other place.
 Abstraction: Data structure is specified by the ADT which provides a level of abstraction
CLASSIFICATION OF DATA STRUCTURE

Data Structures are normally classified into two broad categories

1. Primitive Data Structure

2. Non-primitive data Structure


CLASSIFICATION OF DATA STRUCTURE
CLASSIFICATION OF DATA STRUCTURE

 Primitive Data Structures


 Simple data structure can be constructed with the help of primitive data structure.
 A primitive data structure used to represent the standard data types of any one of the computer
languages.
 Variables, pointers, structures, unions, etc. are examples of primitive data structures.
NON PRIMITIVE DATA
STRUCTURES
 Non Primitive Data Structures are classified as linear or non-linear.
 Linear- Arrays, linked lists, queues and stacks.
 Non-Linear- Trees and Graphs
LINEAR DATA STRUCTURES
 A data structure is called linear if all of its elements are arranged in the linear order.
 In linear data structures, the elements are stored in non-hierarchical way where each element
has the successors and predecessors except the first and last element.
 Linear data structures can be constructed as a continuous arrangement of data elements in the
memory.
 It can be constructed by using array data type.
TYPES OF LINEAR DATA
STRUCTURES
 Arrays: An array is a collection of similar type of data items stored in consecutive memory
location and is referred by common name; each data item is called an element of the array. The
data type of the element may be any valid data type like char, int, float or double.
 The elements of array share the same variable name but each one carries a different index
number known as subscript. The array can be one dimensional, two dimensional or
multidimensional.
LINKED LIST
 Linked list is a linear data structure which is used to maintain a list in the memory.
 It can be seen as the collection of nodes stored at non-contiguous.
 Each nodememory locations of the list contains a pointer to its adjacent node.
 It is a collection of data of same data type but the data items need not be stored in consecutive
memory locations.
STACK
 Stack is a linear list in which insertion and deletions are allowed only at one end, called top.
 It is a Last-In-First-Out linear data structure.
 A stack is an abstract data type (ADT), can be implemented in most of the programming
languages.
 It is named as stack because it behaves like a real-world stack, for example, piles of plates or
deck of cards etc.
QUEUE
 Queue is a linear list in which elements can be inserted only at one end called rear and deleted
only at the other end called front.
 It is a First-In-First-Out Linear data structure.
 It is an abstract data structure, similar to stack.
 Queue is opened at both end therefore it follows First-In-First-Out (FIFO) methodology for
storing the data items.
OPERATIONS APPLIED ON
LINEAR DATA STRUCTURE
 The following list of operations applied on linear data structures
 1. Add an element
 2. Delete an element
 3. Traverse
 4. Sort the list of elements
 5. Search for a data element
ARRAYS
 The number of data items chunked together into single unit is known as data structure.
 Sequence of Similar Data Items referred to as an Array.
 Definition:
 An array is the most fundamental data structure from which other data structures may be built such as
stack, queue, strings etc.
 Designed to hold number of objects (items) of similar types.
 An efficient data structure for storing and retrieval of objects.
ARRAYS
 Array is the logical collection of values of same type.
 For example:
 List of courses in a semester
 Matrix
 Daily temperature over a period of time
 List of students in a class
SYNTAX
 datatype [] arrayName
 arrayName = new dataType[size of the array]
 datatype [] arrayName = new dataType[size of the array]

 Example
 int [] i;
 i = new int[10];
 int [] i = new int[10];
INITIALIZATION – SINGLE
DIMENSION ARRAY
 int [] x = new int[1];
 int [] x = {10}; x 10
 int [] x = { 10, 20 };

x 10 20
CHARACTERISTICS
 Array stores elements of same data type.
 The elements of an array are stored in contiguous memory locations.
 When data objects are stored in array, individual objects are selected by an index. By default
an array index starts from 0 and ends with (n-1). Index is also referred as subscripts.
 The size of the array is mentioned at the time of declaring array.
 While declaring 2D array, number of columns should be specified whereas for number of rows
there is no such rule.
 Size of array can’t be changed at run time (depends on the programming language)
STORAGE REPRESENTATION
 An array is a set of homogeneous elements.
 Every element is referred by an index.
 Memory storage locations of the elements are not arranged as a rectangular array with rows
and columns. Instead they are arranged in a linear sequence beginning with location 1,2,3 and
so on.
 The nature of storage depends on how the programming language stores the 2D array
elements.
 The elements are stored either column-by-column (column-major order) or row-by-row (row-
major order).
EXAMPLE – ROW MAJOR
 Rows
ORDER
:3
Data (A):
1 2 3 4
 Columns :4 5 6 7 8
9 10 11 12
Linear Arrangement of Array A
Row 1 2 3
Index (1,1) (1,2) (1,3) (1,4) (2,1) (2,2) (2,3) (2,4) (3,1) (3,2) (3,3) (3,4)

Memory 100 102 104 106 108 110 112 114 116 118 120 122

Data 1 2 3 4 5 6 7 8 9 10 11 12
ACCESS
 Columns: N
 Element at ith row and jth column is at the position
 N*(i–1)+(j–1)
EXAMPLE – COLUMN MAJOR
ORDER
 Rows :3
Data (A):
1 2 3 4
 Columns :4 5 6 7 8
9 10 11 12
Linear Arrangement of Array A
Column 1 2 3 4
Index (1,1) (2,1) (3,1) (1,2) (2,2) (3,2) (1,3) (2,3) (3,3) (1,4) (2,4) (3,4)

Memory 100 102 104 106 108 110 112 114 116 118 120 122

Data 1 5 9 2 6 10 3 7 11 4 8 12
ROW MAJOR ORDER
 Location (A [j,k] ) = Base Address of (A) + w [ (N * (j-1)) + (k-1) ]

 Location (A [j, k] ): Location of jth row and kth column


 Base (A) : Base Address of the Array A
w : Bytes required to represent single element of the Array A
N : Number of columns in the Array
j : Row position of the element
k : Column position of the element
EXAMPLE
Linear Arrangement of Array A
Row 1 2 3
Index (1,1) (1,2) (1,3) (1,4) (2,1) (2,2) (2,3) (2,4) (3,1) (3,2) (3,3) (3,4)

Memory 100 102 104 106 108 110 112 114 116 118 120 122

Data 1 2 3 4 5 6 7 8 9 10 11 12

Base (A) = 100


w = 2 Bytes (integer type)
N=4
j=3
k=2
Location ( A [3, 2] ) = 100 + 2 [ (4 * (3-1) + (2-1) ]
= 118
COLUMN MAJOR ORDER
 Location (A [j, k] ) = Base Address of (A) + w [ (M * (k-1)) + (j-1) ]

 Location (A [j, k] ): Location of jth row and kth column


 Base (A) : Base Address of the Array A
w : Bytes required to represent single element of the Array A
M : Number of rows in the Array
j : Row position of the element
k : Column position of the element
EXAMPLE
Linear Arrangement of Array A
Column 1 2 3 4
Index (1,1) (2,1) (3,1) (1,2) (2,2) (3,2) (1,3) (2,3) (3,3) (1,4) (2,4) (3,4)

Memory 100 102 104 106 108 110 112 114 116 118 120 122

Data 1 5 9 2 6 10 3 7 11 4 8 12

Base (A) = 100


w = 2 Bytes (integer type)
M=3
j=3
k=2
Location ( A [3, 2] ) = 100 + 2 [ (3 * (2-1) + (3-1) ]
= 110
ARRAY TYPES
 Single Dimension Array
 Multi Dimension Array
 Double Dimension Array (or) Matrix
 Three Dimension Arrays
INITIALIZATION – DOUBLE
DIMENSION ARRAY
 int [][] x = new int[1][1];
 Int [][] x = new int[4][3]; x 10
 int [][] x = {10};
 int [][] x = { {10, 20}, {30, 40} };

x 10 20

30 40
THREE DIMENSIONAL ARRAY
int [][][] A = new int[3][4][3];

(1,1,1) (1,1,2) (1,1,3) (2,1,1) (2,1,2) (2,1,3) (3,1,1) (3,1,2) (3,1,3)

(1,2,1) (1,2,2) (1,2,3) (2,2,1) (2,2,2) (2,2,3) (3,2,1) (3,2,2) (3,2,3)

(1,3,1) (1,3,2) (1,3,3) (2,3,1) (2,3,2) (2,3,3) (3,3,1) (3,3,2) (3,3,3)

(1,4,1) (1,4,2) (1,4,3) (2,4,1) (2,4,2) (2,4,3) (3,4,1) (3,4,2) (3,4,3)

1 2 3
REVERSING AN ARRAY
 Input: A = [1, 2, 3, 4, 5]
 Output: A = [5, 4, 3, 2, 1]
 Algorithm:
 n = length of the Array (A)
 for i = n – 1, j = 0, i >= 0, increment j by 1 and decrement i by
 B[j] = A[i]
 for i = 0 to n
 A[i] = B[i]
1)
ARRAY COUNT
Initialize i as 0
2) Do following while i < n
// If this element is already processed then nothing to do
a) If arr[i] 0)
(i) arr[i] = arr[elementIndex];
// After storing arr[elementIndex], change it to store initial count of 'arr[i]'
(ii) arr[elementIndex] = -1;
d) else
// If this is NOT first occurrence of arr[i], then decrement its count.
(i) arr[elementIndex]--;
// And initialize arr[i] as 0 means the element 'i+1' is not seen so far
(ii) arr[i] = 0;
(iii) i++;
3)Now -arr[i] stores count of i+1.
HISTOGRAM
PROCEDURE
#include <bits/stdc++.h>
// print last line denoted by ----
for (int i = 0; i < n + 3; i++)
void printHistogram(int arr[], int n)
cout << "---";
{
cout << "\n";
int maxEle = *max_element(arr, arr + n);
for (int i = maxEle; i >= 0; i--) { cout << " ";
cout.width(2); for (int i = 0; i < n; i++) {
cout << right << i << " | "; cout.width(2); // width for a number
for (int j = 0; j < n; j++) { cout << right << arr[i] << " ";
// if array of element is greater }
// then array it print x
}
if (arr[j] >= i)
int main()
cout << " x ";
{
// else print blank spaces
else int arr[10] = { 10, 9, 12, 4, 5, 2, 8, 5, 3, 1 };
cout << " "; int n = sizeof(arr) / sizeof(arr[0]);
} printHistogram(arr, n);
cout << "\n"; return 0;
} }
Int fibo(n) {
If (n==0) return 0;
If (n==1) return 1;
n=3
return fibo(n-1)+fibo(n-
2);
}

Int fibo(n) { Int fibo(n) {


If (n==0) return 0; If (n==0) return 0;
If (n==1) return 1; If (n==1) return 1;
n=2 n=1
return fibo(n-1)+fibo(n- return fibo(n-1)+fibo(n-
2); 2);
} }
Int fibo(n) { Int fibo(n) {
If (n==0) return 0; If (n==0) return 0;
If (n==1) return 1; If (n==1) return 1;
n=1 n=0
return fibo(n-1)+fibo(n- return fibo(n-1)+fibo(n-
2); 2);
} }
1+0=1

n=1 n=0
Int fibo(n) { Int fibo(n) {
If (n==0) return 0; If (n==0) return 0;
If (n==1) return 1; If (n==1) return 1;
return fibo(n-1)+fibo(n- return fibo(n-1)+fibo(n-
2); 2);
} }
1 +1=2

n=1
Int fibo(n) {
If (n==0) return 0;
If (n==1) return 1;
return fibo(n-1)+fibo(n-
2);
}
TOWERS OF HANOI
 There are three towers
 64 gold disks, with decreasing sizes, placed on the first tower
 Need to move all of the disks from the first tower to the last tower
 Larger disks can not be placed on top of smaller disks
 The third tower can be used to temporarily hold disks
TOWER OF HANOI

Source Destination Intermediate


TOWER OF HANOI

Source Destination Intermediate


TOWER OF HANOI

Source Destination Intermediate


TOWER OF HANOI

Source Destination Intermediate


TOWER OF HANOI

Source Destination Intermediate


TOWER OF HANOI

Source Destination Intermediate


TOWER OF HANOI

Source Destination Intermediate


TOWER OF HANOI

Source Destination Intermediate


RECURSIVE PROCEDURE
def moveDisk(n, source, dest, inter):
if n>=1:
moveDisk(n-1, source, inter, dest)
print("Moving Disk
From:“,source,"To:",dest)
moveDisk(n-1, inter, dest, source)

moveDisk(3, "A", "B", "C")


OUTPUT
1. Moving Disk C From: A To: B
2. Moving Disk B From: A To: C
3. Moving Disk A From: B To: C
4. Moving Disk C From: A To: B
5. Moving Disk B From: C To: A
6. Moving Disk A From: C To: B
7. Moving Disk C From: A To: B
3, A, B, C

2, A, C, B

1, A, B, C

0, A, C, B

0, C, B, A

1, B, C, A

0, B, A, C

0, A, C, B

2, C, B, A

1, C, A, B

0, C, B, A

0, B, A, C

1, A, B, C

0, A, C, B

0, C, B, A
TAIL RECURSION
void print(int n)
{
if (n < 0)
return;
printf(“%d”, n);
print(n-1);
}
OPERATIONS ON DATA
STRUCTURES
 Traversing
 Searching
 Inserting
 Deleting
 Sorting
 Merging

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy