SlideShare a Scribd company logo
1 of 126
Download to read offline
Data Structures using C
Dr. K ADISESHA
Please bring to class
each day
Introduction
Types of Data structures
Arrays
Stacks and Queues
Linked lists
2
Data Structures
 Dr. K ADISESHA
Introduction
Dr. K. Adisesha
3
Data Structures:
Data
➢ Data is a collection of facts, numbers, letters or symbols that the computer process into
meaningful information.
Data structure
➢ Data structure is representation of the logical relationship existing between individual
elements of data.
➢ Data structure is a specialized format for organizing and storing data in memory that
considers not only the elements stored but also their relationship to each other.
Introduction
Dr. K. Adisesha
4
Why to Learn Data Structure:
As applications are getting complex and data rich, there are three common problems
that applications face now-a-days
➢ Data Search − Consider an inventory of 1 million(106) items of a store. If the
application is to search an item, it has to search an item in 1 million(106) items every
time slowing down the search. As data grows, search will become slower.
➢ Processor speed − Processor speed although being very high, falls limited if the data
grows to billion records.
➢ Multiple requests − As thousands of users can search data simultaneously on a web
server, even the fast server fails while searching the data..
Introduction
Dr. K. Adisesha
5
Data Structures:
Data structure affects the design of both structural & functional aspects of a program.
➢ A algorithm is a step by step procedure to solve a particular function.
➢ Program=algorithm + Data Structure
Introduction
Dr. K. Adisesha
6
Applications of Data Structure and Algorithms:
Algorithm is a step-by-step procedure, which defines a set of instructions to be executed
in a certain order to get the desired output. Algorithms are generally created
independent of underlying languages.
➢ From the data structure point of view, following are some important categories of
algorithms.
❖ Insert − Algorithm to insert item in a data structure.
❖ Traverse − Algorithm to visit every item in a data structure.
❖ Update − Algorithm to update an existing item in a data structure.
❖ Search − Algorithm to search an item in a data structure.
❖ Sort − Algorithm to sort items in a certain order.
❖ Delete − Algorithm to delete an existing item from a data structure.
Introduction
Dr. K. Adisesha
7
Characteristics of an Algorithm:
An algorithm should have the following characteristics −.
➢ Unambiguous − Algorithm should be clear and unambiguous. Each of its steps (or
phases), and their inputs/outputs should be clear and must lead to only one meaning.
➢ Input − An algorithm should have 0 or more well-defined inputs.
➢ Output − An algorithm should have 1 or more well-defined outputs, and should match
the desired output.
➢ Finiteness − Algorithms must terminate after a finite number of steps.
➢ Feasibility − Should be feasible with the available resources.
➢ Independent − An algorithm should have step-by-step directions, which should be
independent of any programming code.
Introduction
Dr. K. Adisesha
8
Characteristics of a Data Structure:
Data Structure is a systematic way to organize data in order to use it efficiently.
Following terms are the Characteristics of a data structure.
➢ Correctness − Data structure implementation should implement its interface correctly.
➢ Time Complexity − Running time or the execution time of operations of data structure
must be as small as possible.
➢ Space Complexity − Memory usage of a data structure operation should be as little as
possible.
Introduction
Dr. K. Adisesha
9
Algorithm Analysis:
Efficiency of an algorithm can be analyzed at two different stages, before implementation
and after implementation. They are the following .
➢ A Priori Analysis − This is a theoretical analysis of an algorithm. Efficiency of an
algorithm is measured by assuming factors, like processor speed, are constant and have
no effect on the implementation.
➢ A Posterior Analysis − This is an empirical analysis of an algorithm. The selected
algorithm is implemented using programming language. In this analysis, actual statistics
like running time and space required, are collected.
Introduction
Dr. K. Adisesha
10
Algorithm Complexity:
The complexity of an algorithm represents the amount of memory space and time
required by the algorithm in its life cycle.
➢ Space complexity − Space complexity of an algorithm represents the amount of memory
space required by the algorithm in its life cycle..
➢ Time complexity − Time complexity of an algorithm represents the amount of time
required by the algorithm to run to completion.
Example
 Calculate
 Lines 1 and 4 count for one unit each
 Line 3: executed N times, each time four units
 Line 2: (1 for initialization, N+1 for all the tests, N for all the increments) total 2N + 2
 total cost: 6N + 4  O(N)

=
N
i
i
1
3
1
2
3
4
1
2N+2
4N
1
Introduction
Dr. K. Adisesha
12
Asymptotic Analysis of an algorithm:
Asymptotic analysis of an algorithm refers to Asymptotic analysis refers to computing the
running time of any operation in mathematical units of computation of its run-time
performance.
➢ The Asymptotic analysis of an algorithm falls under three types:
❖ Best Case − Minimum time required for program execution.
❖ Average Case − Average time required for program execution.
❖ Worst Case − Maximum time required for program execution.
Introduction
Dr. K. Adisesha
13
Asymptotic Notations of an algorithm:
Following are the commonly used asymptotic notations to calculate the running time
complexity of an algorithm..
➢ The Asymptotic Notations of an algorithm falls under three types:
❖ Big Oh Notation, Ο− It measures the worst case time complexity.
❖ Omega Notation, Ω− It measures the best case time complexity.
❖ Theta Notation, θ− It measures the Average case time complexity.
Introduction
Dr. K. Adisesha
14
Big Oh Notation, ( Ο )of an algorithm:
The notation Ο(n) is the formal way to express the upper bound of an algorithm's
running time.
➢ It measures the worst case time complexity or the longest amount of time an algorithm
can possibly take to complete.
▪ For example, for a function f(n)
▪ It is represented as follows
▪ Ο(f(n)) = { g(n) : there exists c > 0 and n0 such that f(n) ≤ c.g(n) for all n > n0. }
Introduction
Dr. K. Adisesha
15
Omega Notation, Ω of an algorithm:
The notation Ω(n) is the formal way to express the lower bound of an algorithm's
running time. It measures the best case time complexity or the best amount of time an
algorithm can possibly take to complete
• For example, for a function f(n)
• It is represented as follows
• Ω(f(n)) ≥ { g(n) : there exists c > 0 and n0 such that g(n) ≤ c.f(n) for all n > n0. }
Introduction
Dr. K. Adisesha
16
Theta Notation, θ of an algorithm:
The notation θ(n) is the formal way to express both the lower bound and the upper
bound of an algorithm's running time.
▪ For example, for a function f(n)
▪ It is represented as follows
▪ θ(f(n)) = { g(n) if and only if g(n) = Ο(f(n)) and g(n) = Ω(f(n)) for all n > n0. }
Introduction
Dr. K. Adisesha
17
Common Asymptotic Notations:
Following is a list of some common asymptotic notations.
❖ constant − Ο(1)
❖ logarithmic− Ο(log n)
❖ linear − Ο(n)
❖ n log n − Ο(n log n)
❖ quadratic − Ο(n2)
❖ cubic − Ο(n3)
❖ polynomial − nΟ(1)
❖ exponential− 2Ο(n)
Introduction
Dr. K. Adisesha
18
Basic Terminology:
The basic terminologies which are usually used to compare various data structure's are:
➢ Data − Data are values or set of values or set of real world facts.
➢ Data Item − Data item refers to single unit of values.
➢ Group Items − Data items that are divided into sub items are called as Group Items.
➢ Elementary Items − Data items that cannot be divided are called as Elementary Items.
➢ Attribute and Entity − An entity is that which contains certain attributes or properties, which
may be assigned values.
➢ Entity Set − Entities of similar attributes form an entity set.
➢ Field − Field is a single elementary unit of information representing an attribute of an entity.
➢ Record − Record is a collection of field values of a given entity.
➢ File − File is a collection of records of the entities in a given entity set.
Data Structures
Dr. K. Adisesha
19
Data Type:
Data type is a way to classify various types of data which determines the values that can
be used with the corresponding type of data, the type of operations that can be
performed on the corresponding type of data.
There are two data types:
➢ Built-in Data Type: Those data types for which a language has built-in support are
known as Built-in Data type.
➢ Derived Data Type: Those data types which are implementation independent as they
can be implemented in one or the other way are known as derived data types.
Data Structures
Dr. K. Adisesha
20
Classification of Data Structure using C:
Data structure are normally divided into two broad categories:
➢ Primitive Data Structure
➢ Non-Primitive Data Structure
❖ Linear Data Structure
❖ Non-Linear Data Structure
Data Structures
Dr. K. Adisesha
21
Primitive Data Structure:
Data structures that are directly operated upon the machine-level instructions are
known as primitive data structures:
➢ There are basic structures and directly operated upon by the machine instructions.
➢ The Data structures that fall in this category are.
❖ Integer
❖ Floating-point number
❖ Character constants
❖ string constants
❖ pointers etc.,
Data Structures
Dr. K. Adisesha
22
Primitive Data Structure:
Data structures that are directly operated upon the machine-level instructions are
known as primitive data structures:
➢ The most commonly used operation on data structure are broadly categorized into
following types:
❖ Create
❖ Insertion
❖ Selection
❖ Updating
❖ Destroy or Delete
Data Structures
Dr. K. Adisesha
23
Non-Primitive Data Structure:
The Data structures that are derived from the primitive data structures are called Non-
primitive data structure:
➢ There are more sophisticated data structures
➢ The non-primitive data structures emphasize on structuring of a group of homogeneous
(same type) or heterogeneous (different type) data items:
❖ Linear Data structures
❖ Non-Linear Data structures
Data Structures
Dr. K. Adisesha
24
Non-Primitive Data Structure:
Linear Data structures
Linear Data structures are kind of data structure that has homogeneous elements.
➢ The data structure in which elements are in a sequence and form a liner series.
➢ Linear data structures are very easy to implement, since the memory of the computer is
also organized in a linear fashion.
➢ Some commonly used linear data structures are:
❖ Stack
❖ Queue
❖ Linked Lists
Data Structures
Dr. K. Adisesha
25
Non-Primitive Data Structure:
Non-Linear Data structures
A Non-Linear Data structures is a data structure in which data item is connected to
several other data items.
➢ Non-Linear data structure may exhibit either a hierarchical relationship or parent child
relationship.
➢ The data elements are not arranged in a sequential structure.
➢ Some commonly used non-linear data structures are:
❖ Trees
❖ Graphs
Data Structures
Dr. K. Adisesha
26
Non-Primitive Data Structure:
The most commonly used operation on data structure are broadly categorized into
following types:
❖ Traversal
❖ Insertion
❖ Selection
❖ Searching
❖ Sorting
❖ Merging
❖ Destroy or Delete
Data Structures
Dr. K. Adisesha
27
Differences between Data Structure:
The most commonly used differences between on data structure are broadly categorized
into following types:
➢ A primitive data structure is generally a basic structure that is usually built into the
language, such as an integer, a float.
➢ A non-primitive data structure is built out of primitive data structures linked together
in meaningful ways, such as a or a linked-list, binary search tree, AVL Tree, graph etc.
Recursion
Dr. K. Adisesha
28
Recursion:
Recursion is the process of repeating items in a self-similar way. In programming
languages, if a program allows you to call a function inside the same function, then it
is called a recursive call of the function.
➢ while using recursion, programmers need to be careful to define an exit condition from
the function, otherwise it will go into an infinite loop.
➢ Recursive functions are very useful to solve many
mathematical problems, such as calculating the
factorial of a number, generating Fibonacci series,
etc.
Recursion
Dr. K. Adisesha
29
Recursion:
Recursion is the process in which a function calls itself up to n-number of times. If a
program allows the user to call a function inside the same function recursively, the
procedure is called a recursive call of the function.
➢ Types of Recursion in C:
❖ Direct Recursion
❖ Indirect Recursion
❖ Tail Recursion
❖ No Tail/ Head Recursion
❖ Linear recursion
❖ Tree Recursion
Recursion
Dr. K. Adisesha
30
Types of the recursion:
Following are the types of the recursion in C programming language, as follows:
➢ Direct Recursion: When a function calls itself within the same function repeatedly, it
is called the direct recursion.
➢ Indirect Recursion: When a function is mutually called by another function in a
circular manner, the function is called an indirect recursion function.
Direct Recursion:
fun()
{
// write some code
fun();
// some code
}
Indirect Recursion:
fun1()
{
// write some code
fun2();
}
fun2()
{
// write some code
fun1();
// write some code
}
Recursion
Dr. K. Adisesha
31
Types of the recursion:
Following are the types of the recursion in C programming language, as follows:
➢ Tail Recursion: A recursive function is called the tail-recursive if the function makes
recursive calling itself, and that recursive call is the last statement executes by the
function. After that, there is no function or statement is left to call the recursive function.
➢ Head Recursion: A function is called the non-tail or head recursive if a function makes a
recursive call itself, the recursive call will be the first statement in the function.
➢ Linear recursion: A function is called the linear recursive if the function makes a single
call to itself at each time the function runs and grows linearly in proportion to the size of
the problem.
➢ Tree Recursion: A function is called the tree recursion, in which the function makes more
than one call to itself within the recursive function.
Recursion
Dr. K. Adisesha
32
Recursion:
The C programming language supports recursion, i.e., a function to call itself.
➢ The following example calculates the factorial of a given number using a recursive
function −
#include <stdio.h>
int factorial(int i) {
if(i <= 1) {
return 1;
}
return i * factorial(i - 1);
}
int main() {
int i = 12;
printf("Factorial of %d is %dn", i,
factorial(i));
return 0;
}
Recursion
Dr. K. Adisesha
33
Drawbacks of Recursion in Data Structure:
There are some potential drawbacks to using recursion in data structures, including:
➢ Memory usage: Recursive algorithms can use a lot of memory, particularly if the recursion
goes too deep or if the data structure is large. Each recursive call creates a new stack frame on
the call stack, which can quickly add up to a significant amount of memory usage.
➢ Stack overflow: If the recursion goes too deep, it can cause a stack overflow error, which can
crash the program.
➢ Performance: Recursive algorithms can be less efficient than iterative algorithms in some
cases, particularly if the data structure is large or if the recursion goes too deep.
➢ Debugging: Recursive algorithms can be more difficult to debug than iterative algorithms,
particularly if the recursion goes too deep or if the program is using multiple recursive calls.
➢ Code complexity: Recursive algorithms can be more complex than iterative algorithm.
Recursion
Dr. K. Adisesha
34
Difference between Recursion and Iteration:
Basis Recursion Iteration
Basis of
repetition
Recursion is based on the idea of a function
calling itself. The base case is the simplest
version of the problem that can be solved
without recursion.
Iteration, on the other hand, uses looping
constructs such as "for" and "while" to repeat
a process a certain number of times or until a
specific condition is met.
Control flow
Recursion relies on the call stack to keep track
of function calls and their parameters. Each
recursive call pushes a new function call onto
the call stack, and each return pops the function
call off the stack.
Iteration, on the other hand, does not rely on
the call stack and uses variables and control
structures to control the flow of execution.
Performance
Recursion can be more elegant and easier to
understand for certain types of problems
Iteration is often more efficient than recursion,
especially for large datasets or complex
algorithms.
Arrays
Dr. K. Adisesha
35
Arrays:
An array is defined as a set of finite number of homogeneous elements or same data
items:
➢ Following are the important terms to understand the concept of Array.
❖ Element − Each item stored in an array is called an element.
❖ Index − Each location of an element in an array has a numerical index, which is
used to identify the element.
➢ Declaration of array is as follows:
❖ Syntax: Datatype Array_Name [Size];
❖ Example: int arr[10];
✓ Where int specifies the data type or type of elements arrays stores.
✓ “arr” is the name of array & the number specified inside the square brackets is the number of
elements an array can store, this is also called sized or length of array.
Arrays
Dr. K. Adisesha
36
Array as ADT (Abstract Data Type) using C:
Abstract Data type (ADT) is a type (or class) for objects whose behavior is defined by a
set of values and a set of operations. The definition of ADT only mentions what
operations are to be performed but not how these operations will be implemented.:
➢ Abstract Data type (ADT) –
❖ Representation of Data.
❖ Set of Operations on the Data.
❖ The first thing is we need an array space of some size. Here we initialize an array of
size = 10 and length = 0 because there are no elements in the array
Arrays
Dr. K. Adisesha
37
Array as ADT (Abstract Data Type) using C:
We can perform more operations on the array data structure but the above are some
basic operations. Let us give some information about the above functions-
➢ Display () – To Display the entire array on the screen.
➢ Add(n) / Append(n) – To add a particular element on the end of the array.
➢ Insert (index, n) – To add an element to a particular index.
➢ Delete (index) – To delete an element with the help of an index in the given array.
➢ Search (n) – To check whether the given element is present or not in an array.
➢ Get (index) – It will return the element which presents on the given index.
➢ Set (index, x) – It will change the element with the new element at a particular index.
➢ Max () / Min () – These will return the max and min element in the given array.
➢ Reverse () – It will reverse the order of elements in the given array.
➢ Shift () – It will shift the whole elements either on the left or right side by the given number.
Arrays
Dr. K. Adisesha
38
Types of Arrays:
The elements of array will always be stored in the consecutive (continues) memory
location. The various types of Arrays are:
➢ Single Dimension Array:
❖ Array with one subscript
❖ Ex: int A[i];
➢ Two Dimension Array
❖ Array with two subscripts (Rows and Column)
❖ Ex: int A[i][j];
➢ Multi Dimension Array:
❖ Array with Multiple subscripts
❖ Ex: int A[i][j]..[n];
Arrays
Dr. K. Adisesha
39
Arrays:
Represent a Linear Array in memory:
➢ The elements of linear array are stored in consecutive memory locations.
➢ It is shown below:
int A[5]={23, 4, 6, 15, 5, 7}
Arrays
Dr. K. Adisesha
40
Calculating the length of the array:
The elements of array will always be stored in the consecutive (continues) memory
location.
➢ The number of elements that can be stored in an array, that is the size of array or its length is
given by the following equation:
o A[n] is the array size or length of n elements.
o The length of the array can be calculated by:
L = UB – LB + 1
o To Calculate the address of any element in array:
Loc(A[P])=Base(A)+W(P-LB)
o Here, UB is the largest Index and LB is the smallest index
➢ Example: If an array A has values 10, 20, 30, 40, 50, stored in location 0,1, 2, 3, 4 the UB = 4
and LB=0 Size of the array L = 4 – 0 + 1 = 5
Arrays
Dr. K. Adisesha
41
Two dimensional array:
A two dimensional array is a collection of elements and each element is identified by a
pair of subscripts. ( A[3] [3] ).
➢ The elements are stored in continuous memory locations.
➢ The elements of two-dimensional array as rows and columns.
➢ The number of rows and columns in a matrix is called as the order of the matrix and
denoted as MxN.
➢ The number of elements can be obtained by multiplying number of rows and number of
columns. A[0] A[1] A[2]
A[0] 10 20 30
A[1] 40 50 60
A[2] 70 80 90
Arrays
Dr. K. Adisesha
42
Representation of Two Dimensional Array:
A two dimensional array is a collection of elements and each element is identified by a
pair of subscripts. ( A[m] [n] )
➢ A is the array of order m x n. To store m*n number of elements, we need m*n memory
locations.
➢ The elements should be in contiguous memory locations.
➢ There are two methods:
❖ Row-major method
❖ Column-major method
A[0] A[1] A[2]
A[0] 10 20 30
A[1] 40 50 60
A[2] 70 80 90
Arrays
Dr. K. Adisesha
43
Representation of Two Dimensional Array:
Row-Major Method:
➢ All the first-row elements are stored in sequential
memory locations and then all the second-row
elements are stored and so on. Ex: A[Row][Col]
Column-Major Method:
➢ All the first column elements are stored in sequential
memory locations and then all the second-column
elements are stored and so on. Ex: A [Col][Row]
1000 10 A[0][0]
1002 20 A[0][1]
1004 30 A[0][2]
1006 40 A[1][0]
1008 50 A[1][1]
1010 60 A[1][2]
1012 70 A[2][0]
1014 80 A[2][1]
1016 90 A[2][2]
1000 10 A[0][0]
1002 40 A[1][0]
1004 70 A[2][0]
1006 20 A[0][1]
1008 50 A[1][1]
1010 80 A[2][1]
1012 30 A[0][2]
1014 60 A[1][2]
1016 90 A[2][2]
Row-Major Method
Col-Major Method
Arrays
Dr. K. Adisesha
44
Calculating the length of the 2D-Array
:
A two dimensional array is a collection of elements and each element is identified by a
pair of subscripts. ( A[m] [n] )
➢ The size of array or its length is given by the following equation:
A[i][j] is the array size or length of m*n elements.
➢ To Calculate the address of i*j th element in array:
❖ Row-Major Method: Loc(A[i][j])=Base(A)+W[n(i-LB)+(j-LB)]
❖ Col-Major Method: Loc(A[i][j])=Base(A)+W[(i-LB)+m(j-LB)]
Here, W is the number of words per memory location and LB is the smallest index
Arrays
Dr. K. Adisesha
45
Advantages of Array
:
A two dimensional array is a collection of elements and each element is identified by a
pair of subscripts. ( A[m] [n] )
➢ It is used to represent multiple data items of same type by using single name.
➢ It can be used to implement other data structures like linked lists, stacks, queues, tree,
graphs etc.
➢ Two-dimensional arrays are used to represent matrices.
➢ Many databases include one-dimensional arrays whose elements are records.
Arrays
Dr. K. Adisesha
46
Disadvantages of Array
:
A two dimensional array is a collection of elements and each element is identified by a
pair of subscripts. ( A[m] [n] )
➢ We must know in advance the how many elements are to be stored in array.
➢ Array is static structure. It means that array is of fixed size. The memory which is
allocated to array cannot be increased or decreased.
➢ Array is fixed size; if we allocate more memory than requirement then the memory
space will be wasted.
➢ The elements of array are stored in consecutive memory locations. So insertion and
deletion are very difficult and time consuming.
Arrays
Dr. K. Adisesha
47
Basic operations of Arrays:
Some common operation performed on array are:
❖ Traversing
❖ Insertion
❖ Deletion
❖ Searching
❖ Sorting
❖ Merging
Arrays
Dr. K. Adisesha
48
Traversing Arrays:
Traversing: It is used to access each data item exactly once so that it can be processed:
➢ We have linear array A as below:
1 2 3 4 5
10 20 30 40 50
➢ Here we will start from beginning and will go till last element and during this process
we will access value of each element exactly once as below:
A [0] = 10
A [1] = 20
A [2] = 30
A [3] = 40
A [4] = 50
Arrays
Dr. K. Adisesha
49
Traverse Operation:
Following program traverses and prints the elements of an array:
Arrays
Dr. K. Adisesha
50
Insertion into Array:
Insertion: It is used to add a new data item in the given collection of data items:
➢ We have linear array A as below:
1 2 3 4 5
10 20 50 30 15
➢ New element to be inserted is 100 and location for insertion is 3.
➢ So shift the elements from 5th location to 3rd location downwards by 1 place.
➢ And then insert 100 at 3rd location
Arrays
Dr. K. Adisesha
51
Insertion into Array:
Insertion into Array:
➢ Insertion 100 into Array
at Pos=3
A [0] = 10
A [1] = 20
A [2] = 50
A [3] = 30
A [4] = 15
Arrays
Dr. K. Adisesha
52
Insertion into Array: Add a new data item in the given array of data:
Insertion into Array:
A [0] = 1
A [1] = 3
A [2] = 5
A [3] = 7
A [4] = 8
Arrays
Dr. K. Adisesha
53
Deletion from Array:
Deletion: It is used to delete an existing data item from the given collection of data
items:
➢ Deletion 30 from Array
at Pos 3
A [0] = 10
A [1] = 20
A [2] = 30
A [3] = 40
A [4] = 50
Arrays
Dr. K. Adisesha
54
Deletion from Array:
A [0] = 1
A [1] = 3
A [2] = 5
A [3] = 7
A [4] = 8
Arrays
Dr. K. Adisesha
55
Searching in Arrays:
Searching: It is used to find out the location of the data item if it exists in the given
collection of data items:
➢ E.g. We have linear array A as below:
1 2 3 4 5
10 20 50 30 35
➢ Suppose item to be searched is 35. We will start from beginning and will compare 35
with each element.
➢ This process will continue until element is found or array is finished.
➢ Types of searching Algorithms:
❖ Linear searching
❖ Binary Searching
Arrays
Dr. K. Adisesha
56
Linear search:
Linear Searching: Also called Sequential Searching.
➢ It is used to find out the location of the data item if it exists in the given collection of
data items.
➢ Example Searching element 33 from the array of elements:
Arrays
Dr. K. Adisesha
57
Linear search:
Linear Searching: Also called Sequential Searching.
Arrays
Dr. K. Adisesha
58
Binary Searching:
The binary search algorithm can be used with
only sorted list of elements.
➢ Binary Search first divides a large array into
two smaller sub-arrays and then recursively
operate the sub-arrays.
➢ Binary Search basically reduces the search
space to half at each step
Arrays
Dr. K. Adisesha
59
Binary Searching:
The binary search algorithm can be used with only sorted list of elements.
➢ Example: Searching the element 57 from the array of elements
Arrays
Dr. K. Adisesha
60
Binary Searching:
➢ Example:
Arrays
Dr. K. Adisesha
61
Binary Searching:
Arrays
Dr. K. Adisesha
62
Difference in Searching:
Arrays
Dr. K. Adisesha
63
Difference in Searching:
Arrays
Dr. K. Adisesha
64
Sorting in Arrays:
A Sorting Algorithm is used to rearrange a given array or list elements according to a
comparison operator on the elements:
➢ The comparison operator is used to decide the new order of element in the respective
data structure.
➢ Types of Sorting Algorithms are:
❖ Bubble Sort
❖ Insertion Sort
❖ Selection Sort
❖ Merge Sort
❖ Quick Sort
❖ Heap Sort
❖ Radix Sort
❖ Bucket Sort
❖ Shell Sort
Arrays
Dr. K. Adisesha
65
Bubble Sort in Arrays:
Bubble Sort is the simplest sorting algorithm that works by repeatedly swapping the
adjacent elements if they are in wrong order.
Arrays
Dr. K. Adisesha
66
Insertion Sorting:
Insertion sort is a simple sorting algorithm that builds the final sorted array (or list)
one item at a time.
➢ This is an in-place comparison-based sorting algorithm. Here, a sub-list is maintained
which is always sorted.
Arrays
Dr. K. Adisesha
67
Insertion Sorting:
This is an in-place comparison-based sorting algorithm. Here, a sub-list is maintained
which is always sorted.
➢ This is an in-place comparison-based sorting algorithm. Here, a sub-list is maintained
which is always sorted.
Arrays
Dr. K. Adisesha
68
Insertion Sorting:
 ALGORITHM: Insertion Sort (A, N) A is an array with N unsorted elements.
◼ Step 1: for I=1 to N-1
◼ Step 2: J = I
While(J >= 1)
if ( A[J] < A[J-1] ) then
Temp = A[J];
A[J] = A[J-1];
A[J-1] = Temp;
[End if]
J = J-1
[End of While loop]
[End of For loop]
◼ Step 3: Exit
Arrays
Dr. K. Adisesha
69
Selection Sort:
Arrays
Dr. K. Adisesha
70
Selection Sort:
Arrays
Dr. K. Adisesha
71
Merging from Array:
Merging: It is used to combine the data items of two sorted files into single file in the
sorted form.
➢ We have sorted linear array A as below:
1 2 3 4 5 6
10 40 50 80 95 100
➢ And sorted linear array B as below:
1 2 3 4
20 35 45 90
➢ After merging merged array C is as below:
1 2 3 4 5 6 7 8 9 10
10 20 35 40 45 50 80 90 95 100
Lists
Dr. K. Adisesha
72
Lists (linked list):
A lists (Linear linked list) can be defined as a collection of variable number of
data items called nodes.
➢ Lists are the most commonly used non-primitive data structures.
➢ Each nodes is divided into two parts:
❖ The first part contains the information of the element.
❖ The second part contains the memory address of the next node in the list.
Also called Link part.
Lists
Dr. K. Adisesha
73
Lists (linked list):
Types of linked lists:
➢ Single linked list
➢ Doubly linked list
➢ Single circular linked list
➢ Doubly circular linked list
➢ Header linked list
Lists
Dr. K. Adisesha
74
Single linked list:
The link field of the last node contains the memory address of the first node,
such a linked list is called circular linked list:
❖ The information field contains the data of that node.
❖ The link field contains the memory address of the next node.
❖ The last link field contains the memory address as null ().
➢ There is only one link field in each node, the linked list is called singly linked
list.
Lists
Dr. K. Adisesha
75
Single circular linked list:
A singly linked list contains two fields in each node - an information field and
the linked field:
❖ The information field contains the data of that node.
❖ The link field contains the memory address of the next node
❖ The last link field contains the memory address of the first node.
➢ In a circular linked list every node is accessible from a given node.
Lists
Dr. K. Adisesha
76
Doubly linked list:
It is a linked list in which each node is points both to the next node and also to
the previous node:
➢ In doubly linked list each node contains three parts:
❖ FORW : It is a pointer field that contains the address of the next node
❖ BACK: It is a pointer field that contains the address of the previous node.
❖ INFO: It contains the actual data.
➢ In the first node, if BACK contains NULL, it indicated that it is the first node in the list.
➢ The in which FORW contains, NULL indicates that the node is the last node.
Lists
Dr. K. Adisesha
77
Doubly circular linked list:
It is a linked list in which each node is points both to the next node and also to
the previous node:
➢ In doubly linked list each node contains three parts:
❖ FORW : It is a pointer field that contains the address of the next node
❖ BACK: It is a pointer field that contains the address of the previous node.
❖ INFO: It contains the actual data.
Lists
Dr. K. Adisesha
78
Header linked list:
A header node is a special node that is found at the beginning of the list. A list
that contains this type of node, is called the header-linked list.
➢ This type of list is useful when information other than that found in each node is needed.:
➢ Types of Header Linked List:
❖Grounded Header Linked List :It is a list whose last node
contains the NULL pointer. In the header linked list the start
pointer always points to the header node.
❖Circular Header Linked List: A list in which last node points
back to the header node is called circular linked list. The
chains do not indicate first or last nodes.
Lists
Dr. K. Adisesha
79
Uses of Linked List:
Linked List can be defined as collection of objects called nodes that are
randomly stored in the memory.
➢ The list is not required to be contiguously present in the memory. The node can reside
any where in the memory and linked together to make a list. This achieves optimized
utilization of space.
➢ list size is limited to the memory size and doesn't need to be declared in advance.
➢ Empty node can not be present in the linked list.
➢ We can store values of primitive types or objects in the singly linked list.
Lists
Dr. K. Adisesha
80
Operation on Linked List:
The operation that are performed on linked lists are:
➢ Creating a linked list
➢ Traversing a linked list
➢ Inserting an item into a linked list.
➢ Deleting an item from the linked list.
➢ Searching an item in the linked list
➢ Merging two or more linked lists.
Lists
Dr. K. Adisesha
81
Creating a linked list:
The nodes of a linked list can be created by the following structure declaration:
struct node
{ int info;
struct node *next;
}; struct node *head, *ptr;
ptr = (struct node *)malloc(sizeof(struct node *));
Here info is the information field and next is the link field.
➢ The link field contains a pointer variable that refers the same node structure. Such a
reference is called as Self addressing pointer.
Lists
Dr. K. Adisesha
82
Operator new and delete:
The nodes of a linked list can be created by the following structure declaration:
➢ Operators new allocate memory space
➢ Operators new [ ] allocates memory space for array.
➢ Operators delete deallocate memory space.
➢ Operators delete [ ] deallocate memory space for array.
struct Node
{
int information;
struct Node *link;
}*node1, *node2;
83
Traversing is the process of accessing each node of the linked list exactly once to
perform some operation.
ALGORITHM: TRAVERS (START, P)
START contains the address of the first node. Another pointer p is temporarily used to visit all the nodes
from the beginning to the end of the linked list.
Step 1: P = START
Step 2: while P != NULL
Step 3: PROCESS data (P) [Fetch the data]
Step 4: P = link(P) [Advance P to next node]
Step 5: End of while
Step 6: Return
Traversing a linked list
Dr. K. Adisesha
84
➢ Inserting a node at the beginning of the linked list
➢ Inserting a node at the given position.
➢ Inserting a node at the end of the linked list.
Lists
Inserting a node into the linked list:
Dr. K. Adisesha
85
Lists
Inserting node at Front:
Inserting a node at the beginning of the linked list
1. Create a node.
2. Fill data into the data field of the new node.
3. Mark its pointer field as NULL
4. Attach this newly created node to START
5. Make the new node as the START node.
Dr. K. Adisesha
86
Lists
Inserting node at Front:
Inserting a node at the beginning of the linked list
ALGORITHM: INS_BEG (START, P) START contains the address of the first node.
Step 1: P new Node;
Step 2: data(P) num;
Step 3: link(P) START
Step 4: START P
Step 5: Return
Dr. K. Adisesha
87
Lists
Inserting node at End:
Inserting a node at the End of the linked list
1. Create a node.
2. Fill data into the data field of the new node.
3. Mark its pointer field as NULL
4. Attach this newly created node to Last
5. Make the new node as the Last node.
Dr. K. Adisesha
ALGORITHM: INS_END (START, P)
START contains the address of the first node.
Step 1: START
Step 2: P START [identify the last node]
while P!= null
P next (P)
End while
Step 3: N new Node;
Step 4: data(N) item;
Step 5: link(N) null
Step 6: link(P) N
Step 7: Return
88
Inserting node at End
Dr. K. Adisesha
89
Inserting node at a given Position
ALGORITHM: INS_POS (START, P1, P2)
START contains the address of the first node. P2 is new node
Step 1: START
Step 2: P1 START [Initialize node]
Count 0
Step 3: while P!= null
count count+1
P1 next (P1)
End while
Step 4: if (POS=1)
Call function INS_BEG( )
else if (POS=Count +1)
Call function INS_END( )
else if (POS<=Count)
P1 Start
For(i=1; i<=pos; i++)
P1 next(P1);
end for
[create] P2 new node
data(P2) item;
link(P2) link(P1)
link(P1) P2
else
PRINT “Invalid position”
Step 5: Return
Dr. K. Adisesha
90
Deleting an item from the linked list:
➢ Deletion of the first node
➢ Deletion of the last node
➢ Deletion of the node at the give position.
Deleting an node
Deleting an node:
Dr. K. Adisesha
91
Deleting an node
Deletion of the first node:
This algorithm first copies data in the first node to a variable and delete the first node
of the linked list.
ALGORITHM: DEL_BEG(P, START) This used pointers P
Step 1: START
Step 2: P START;
Step 3: PRINT data(P)
Step 4: START Link(P)
Step 5: Free(P)
Step 6: STOP
Dr. K. Adisesha
92
Deleting an node
Deleting node from end:
Dr. K. Adisesha
ALGORITHM: DEL_END (P1, P2, START) This used two pointers P1 and P2. Pointer P2 is used
to traverse the linked list and pointer P1 keeps the location of the previous node of P2.
Step 1: START
Step 2: P2 START;
Step 3: while ( link(P2) ! = NULL)
P1 P2
P2 link(P2)
While end
Step 4: PRINT data(p2)
Step 5: link(P1) NULL
Free(P2)
Step 6: STOP
93
Deleting an node
Deleting node from end:
Dr. K. Adisesha
Step 1: START
Step 2: P1 START [Initialize node]
Count 0
Step 3: while P!= null
count count+1
P1 next (P1)
End while
Step 4: if (POS=1)
Call function DEL_BEG( )
else if (POS=Count)
Call function DEL_END( )
else if (POS<=Count)
P2 Start
For(i=1; i<=pos; i++)
P1 P2
P2 link(P2)
end for
PRINT data(P2)
link(P1) link( P2)
free(P2)
End if
Step 5: Return
94
Deleting node at a given Position
ALGORITHM: DEL_POS (START, P1, P2)
START contains the address of the first node. P2 is DEL-node
Dr. K. Adisesha
Stack
Dr. K. Adisesha
95
Stack:
Stack is a linear data structure which follows a particular order in which the operations
are performed
➢ Insertion of element into stack is called PUSH and deletion of element from stack is
called POP.
➢ The order may be LIFO(Last In First Out) or FILO(First In Last Out).
Stack
Dr. K. Adisesha
96
Stack:
Memory Representation of Stack
➢ The stack can be implemented into two ways:
❖ Using arrays (Static implementation)
❖ Using pointer (Dynamic
Stack
Dr. K. Adisesha
97
Operation on Stacks:
The various operation performed on Stacks are:
➢ Stack( ): It creates a new stack that is empty. It needs no parameter and returns an
empty stack.
➢ push(item): It adds a new item to the top of the stack.
➢ pop( ): It removes the top item from the stack.
➢ peek( ): It returns the top item from the stack but does not remove it.
➢ isEmpty( ): It tests whether the stack is empty.
➢ size( ): It returns the number of items on the stack.
Stack
Dr. K. Adisesha
98
Stack Conditions:
The various operation performed on Stacks depend on the following conditions:
Stack
Dr. K. Adisesha
99
PUSH Operation:
The process of adding one element or item to the stack is represented by an operation
called as the PUSH operation:
ALGORITHM:
PUSH (STACK, TOP, SIZE, ITEM)
STACK is the array with N elements. TOP is the pointer to the top of the element of the array. ITEM to be inserted.
Step 1: if TOP = N then [Check Overflow]
PRINT “ STACK is Full or Overflow”
Exit
[End if]
Step 2: TOP = TOP + 1 [Increment the TOP]
Step 3: STACK[TOP] = ITEM [Insert the ITEM]
Step 4: Return
Stack
Dr. K. Adisesha
100
POP Operation:
The process of deleting one element or item from the stack is represented by an
operation called as the POP operation.
When elements are removed continuously from a stack, it shrinks at same end i.e., top:
ALGORITHM: POP (STACK, TOP, ITEM)
STACK is the array with N elements. TOP is the pointer to the top of the element of the array. ITEM
to be DELETED.
Step 1: if TOP = 0 then [Check Underflow]
PRINT “ STACK is Empty or Underflow”
Exit
[End if]
Step 2: ITEM = STACK[TOP] [copy the TOP Element]
Step 3: TOP = TOP - 1 [Decrement the TOP]
Step 4: Return
Stack
Dr. K. Adisesha
101
POP Operation:
The process of deleting one element or item from the stack is represented by an
operation called as the POP operation.
Stack
Dr. K. Adisesha
102
PEEK Operation:
The process of returning the top item from the stack but does not remove it called as the
PEEK operation.
ALGORITHM: PEEK (STACK, TOP)
STACK is the array with N elements. TOP is the pointer to the top of the element of the
array.
Step 1: if TOP = NULL then [Check Underflow]
PRINT “ STACK is Empty or Underflow”
Exit
[End if]
Step 2: Return (STACK[TOP] [Return the top element of the stack]
Step 3:Exit
Stack
Dr. K. Adisesha
103
Application of Stacks:
➢ It is used to reverse a word. You push a given word to stack – letter by letter and then pop letter from
the stack.
➢ “Undo” mechanism in text editor.
➢ Backtracking: This is a process when you need to access the most recent data element in a series of
elements. Once you reach a dead end, you must backtrack.
➢ Language Processing: Compiler’ syntax check for matching braces in implemented by using stack.
➢ Data Conversion of decimal number to binary.
➢ To solve tower of Hanoi.
➢ Conversion of infix expression into prefix and postfix.
➢ To sort elements using Quick sort
➢ Runtime memory management.
An expression is a combination of operands and operators that after evaluation results
in a single value.
◼ Operand consists of constants and variables.
◼ Operators consists of {, +, -, *, /, ), ] etc.
➢ Expression can be
❖ Infix Expression: If an operator is in between two operands, it is called infix expression.
✓ Example: a + b, where a and b are operands and + is an operator.
❖ Postfix Expression: If an operator follows the two operands, it is called postfix expression.
✓ Example: ab +
❖ Prefix Expression: an operator precedes the two operands, it is called prefix expression.
✓ Example: +ab
Stack
Dr. K. Adisesha
104
Arithmetic Expression:
Stack
Dr. K. Adisesha
105
Arithmetic Expression:
Queue
Dr. K. Adisesha
106
Queue:
A queue is an ordered collection of items where an item is inserted at one end called the
“rear” and an existing item is removed at the other end, called the “front”.
➢ Queue is also called as FIFO list i.e. First-In First-Out.
➢ In the queue only two operations are allowed enqueue and dequeue.
➢ Enqueue means to insert an item into back of the queue.
➢ Dequeue means removing the front item.The people standing in a railway reservation
row are an example of queue.
Queue
Dr. K. Adisesha
107
Queue:
A queue is an ordered collection of items where an item is inserted at one end called the
“rear” and an existing item is removed at the other end, called the “front”.
Queue
Dr. K. Adisesha
108
Memory Representation of Queue:
The queue can be implemented into two ways:
➢ Using arrays (Static implementation)
➢ Using pointer (Dynamic
Queue
Dr. K. Adisesha
109
Memory Representation of Queue:
Memory Representation of a queue using array:
➢ Queue is represented in memory using linear array.
➢ Let QUEUE is a array, two pointer variables called FRONT and REAR are
maintained.
➢ The pointer variable FRONT contains the location of the element to be removed or
deleted.
➢ The pointer variable REAR contains location of the last element inserted.
➢ The condition FRONT = NULL indicates that queue is empty.
➢ The condition REAR = N-1 indicates that queue is full.
Queue
Dr. K. Adisesha
110
Types of Queues
:
Queue can be of four types:
➢ Simple Queue
➢ Circular Queue
➢ Priority Queue
➢ De-queue ( Double Ended Queue)
Queue
Dr. K. Adisesha
111
Types of Queues
:
Simple Queue:
➢ Simple Queue: In simple queue insertion occurs at the rear end of the list and
deletion occurs at the front end of the list.
Queue
Dr. K. Adisesha
112
Types of Queues
:
Circular Queue:
➢ Circular Queue: A circular queue is a queue in which all nodes are treated as circular
such that the last node follows the first node.
Queue
Dr. K. Adisesha
113
Types of Queues
:
Priority Queue:
➢ A priority queue is a queue that contains items that have some present priority. An
element can be inserted or removed from any position depending upon some priority.
Queue
Dr. K. Adisesha
114
Types of Queues
:
Dequeue Queue:
➢ Dequeue: It is a queue in which insertion and deletion takes place at the both ends.
Queue
Dr. K. Adisesha
115
Operation on Queues
:
The various operation performed on Queue are :
➢ Queue( ): It creates a new queue that is empty.
➢ enqueue(item): It adds a new item to the rear of the queue.
➢ dequeue( ): It removes the front item from the queue.
➢ isEmpty( ): It tests to see whether the queue is empty.
➢ size( ): It returns the number of items in the queue.
Queue
Dr. K. Adisesha
116
Queue Insertion Operation (ENQUEUE):
ALGORITHM: ENQUEUE (QUEUE, REAR, FRONT, ITEM)
QUEUE is the array with N elements. FRONT is the pointer that contains the location of the element to be deleted
and REAR contains the location of the inserted element. ITEM is the element to be inserted.
Step 1: if REAR = N-1 then [Check Overflow] Front Rear
PRINT “QUEUE is Full or Overflow”
Exit
[End if]
Step 2: if FRONT = NULL then [Check Whether Queue is empty]
FRONT = -1
REAR = -1
else
REAR = REAR + 1 [Increment REAR Pointer]
Step 3: QUEUE[REAR] = ITEM [Copy ITEM to REAR position]
Step 4: Return
Queue
Dr. K. Adisesha
117
Queue Deletion Operation (DEQUEUE):
 ALGORITHM: DEQUEUE (QUEUE, REAR, FRONT, ITEM)
QUEUE is the array with N elements. FRONT is the pointer that contains the location of the element to be deleted and REAR
contains the location of the inserted element. ITEM is the element to be inserted.
 Step 1: if FRONT = NULL then [Check Whether Queue is empty] Front Rear
 PRINT “QUEUE is Empty or Underflow”
 Exit
 [End if]
 Step 2: ITEM = QUEUE[FRONT]
 Step 3: if FRONT = REAR then [if QUEUE has only one element]
 FRONT = NULL
 REAR = NULL
 else
 FRONT = FRONT + 1 [Increment FRONT pointer]
 Step 4: Return
Queue
Dr. K. Adisesha
118
Application of Queue:
➢ Simulation
➢ Various features of Operating system
➢ Multi-programming platform systems.
➢ Different types of scheduling algorithms
➢ Round robin technique algorithms
➢ Printer server routines
➢ Various application software’s is also based on queue data structure.
Non-Linear Data structures
Dr. K. Adisesha
119
Non-Linear Data structures:
A Non-Linear Data structures is a data structure in which data item is
connected to several other data items:
➢ The data items in non-linear data structure represent hierarchical relationship.
➢ Each data item is called node.
➢ The different non-linear data structures are
❖ Trees
❖ Graphs.
Non-Linear Data structures
Dr. K. Adisesha
120
Trees:
A tree is a data structure consisting of nodes organized as a hierarchy:
➢ Tree is a hierarchical data structure which stores the information naturally in the form
of hierarchy style.
➢ It is a non-linear data structure compared to arrays, linked lists, stack and queue.
➢ It represents the nodes connected by edges.
Non-Linear Data structures
Dr. K. Adisesha
121
Terminology of a Tree:
Non-Linear Data structures
Dr. K. Adisesha
122
Binary Tree:
A binary tree is an ordered tree in which each internal node can have maximum
of two child nodes connected to it:
➢ A binary tree consists of:
❖ A node ( called the root node)
❖ Left and right sub trees.
➢ A Complete binary tree is a binary tree in which each leaf is at the same distance from
the root i.e. all the nodes have maximum two subtrees.
Binary tree using array represents a node which is
numbered sequentially level by level from left to
right. Even empty nodes are numbered.
Non-Linear Data structures
Dr. K. Adisesha
123
Graph:
Graph is a mathematical non-linear data structure capable of representing many
kind of physical structures:
➢ A graph is a set of vertices and edges which connect them.
➢ A graph is a collection of nodes called vertices and the connection between them
called edges.
➢ Definition: A graph G(V,E) is a set of vertices V and a set of edges E.
Non-Linear Data structures
Dr. K. Adisesha
124
Graph:
Graph is a mathematical non-linear data structure capable of representing many
kind of physical structures:
➢ An edge connects a pair of vertices and many have weight such as length, cost and
another measuring instrument for according the graph.
➢ Vertices on the graph are shown as point or circles and edges are drawn as arcs or line
segment
Non-Linear Data structures
Dr. K. Adisesha
125
Graph:
Types of Graphs:
❖ Directed graph
❖ Undirected graph
❖ Simple graph
❖ Weighted graph
❖ Connected graph
❖ Non-connected graph
Data structures
Dr. K. Adisesha
126
Thank you:

More Related Content

What's hot (20)

Data structures
Data structuresData structures
Data structures
 
Stack a Data Structure
Stack a Data StructureStack a Data Structure
Stack a Data Structure
 
Data structure and its types
Data structure and its typesData structure and its types
Data structure and its types
 
Queue in Data Structure
Queue in Data Structure Queue in Data Structure
Queue in Data Structure
 
deque and it applications
deque and it applicationsdeque and it applications
deque and it applications
 
trees in data structure
trees in data structure trees in data structure
trees in data structure
 
Trees, Binary Search Tree, AVL Tree in Data Structures
Trees, Binary Search Tree, AVL Tree in Data Structures Trees, Binary Search Tree, AVL Tree in Data Structures
Trees, Binary Search Tree, AVL Tree in Data Structures
 
Arrays In C++
Arrays In C++Arrays In C++
Arrays In C++
 
Stack
StackStack
Stack
 
queue & its applications
queue & its applicationsqueue & its applications
queue & its applications
 
Stack
StackStack
Stack
 
Data structure and algorithm All in One
Data structure and algorithm All in OneData structure and algorithm All in One
Data structure and algorithm All in One
 
Structure of C++ - R.D.Sivakumar
Structure of C++ - R.D.SivakumarStructure of C++ - R.D.Sivakumar
Structure of C++ - R.D.Sivakumar
 
sparse matrix in data structure
sparse matrix in data structuresparse matrix in data structure
sparse matrix in data structure
 
Data Structures - Lecture 3 [Arrays]
Data Structures - Lecture 3 [Arrays]Data Structures - Lecture 3 [Arrays]
Data Structures - Lecture 3 [Arrays]
 
Queue Data Structure
Queue Data StructureQueue Data Structure
Queue Data Structure
 
Array data structure
Array data structureArray data structure
Array data structure
 
Dynamic memory allocation
Dynamic memory allocationDynamic memory allocation
Dynamic memory allocation
 
1.5 binary search tree
1.5 binary search tree1.5 binary search tree
1.5 binary search tree
 
Arrays in Data Structure and Algorithm
Arrays in Data Structure and Algorithm Arrays in Data Structure and Algorithm
Arrays in Data Structure and Algorithm
 

Similar to Data_structure using C-Adi.pdf

Data Structures in C
Data Structures in CData Structures in C
Data Structures in CJabs6
 
ADS Introduction
ADS IntroductionADS Introduction
ADS IntroductionNagendraK18
 
Intro to Data Structure & Algorithms
Intro to Data Structure & AlgorithmsIntro to Data Structure & Algorithms
Intro to Data Structure & AlgorithmsAkhil Kaushik
 
Theory of algorithms final
Theory of algorithms final Theory of algorithms final
Theory of algorithms final Dgech
 
CS3114_09212011.ppt
CS3114_09212011.pptCS3114_09212011.ppt
CS3114_09212011.pptArumugam90
 
Data structures and algorithms Module-1.pdf
Data structures and algorithms Module-1.pdfData structures and algorithms Module-1.pdf
Data structures and algorithms Module-1.pdfDukeCalvin
 
ds 1 Introduction to Data Structures.ppt
ds 1 Introduction to Data Structures.pptds 1 Introduction to Data Structures.ppt
ds 1 Introduction to Data Structures.pptAlliVinay1
 
358 33 powerpoint-slides_4-introduction-data-structures_chapter-4
358 33 powerpoint-slides_4-introduction-data-structures_chapter-4358 33 powerpoint-slides_4-introduction-data-structures_chapter-4
358 33 powerpoint-slides_4-introduction-data-structures_chapter-4sumitbardhan
 
Basic concepts of data structures and algorithms
Basic concepts of data structures and algorithmsBasic concepts of data structures and algorithms
Basic concepts of data structures and algorithmsRosmina Joy Cabauatan
 
FALLSEM2022-23_BCSE202L_TH_VL2022230103292_Reference_Material_I_25-07-2022_Fu...
FALLSEM2022-23_BCSE202L_TH_VL2022230103292_Reference_Material_I_25-07-2022_Fu...FALLSEM2022-23_BCSE202L_TH_VL2022230103292_Reference_Material_I_25-07-2022_Fu...
FALLSEM2022-23_BCSE202L_TH_VL2022230103292_Reference_Material_I_25-07-2022_Fu...AntareepMajumder
 
jn;lm;lkm';m';;lmppt of data structure.pdf
jn;lm;lkm';m';;lmppt of data structure.pdfjn;lm;lkm';m';;lmppt of data structure.pdf
jn;lm;lkm';m';;lmppt of data structure.pdfVinayNassa3
 

Similar to Data_structure using C-Adi.pdf (20)

U nit i data structure-converted
U nit   i data structure-convertedU nit   i data structure-converted
U nit i data structure-converted
 
Lecture 1 and 2
Lecture 1 and 2Lecture 1 and 2
Lecture 1 and 2
 
Data Structures in C
Data Structures in CData Structures in C
Data Structures in C
 
ADS Introduction
ADS IntroductionADS Introduction
ADS Introduction
 
Intro to Data Structure & Algorithms
Intro to Data Structure & AlgorithmsIntro to Data Structure & Algorithms
Intro to Data Structure & Algorithms
 
Theory of algorithms final
Theory of algorithms final Theory of algorithms final
Theory of algorithms final
 
Lecture 01
Lecture 01Lecture 01
Lecture 01
 
CS3114_09212011.ppt
CS3114_09212011.pptCS3114_09212011.ppt
CS3114_09212011.ppt
 
RAJAT PROJECT.pptx
RAJAT PROJECT.pptxRAJAT PROJECT.pptx
RAJAT PROJECT.pptx
 
Unit 1 dsa
Unit 1 dsaUnit 1 dsa
Unit 1 dsa
 
Data structures and algorithms Module-1.pdf
Data structures and algorithms Module-1.pdfData structures and algorithms Module-1.pdf
Data structures and algorithms Module-1.pdf
 
ds 1 Introduction to Data Structures.ppt
ds 1 Introduction to Data Structures.pptds 1 Introduction to Data Structures.ppt
ds 1 Introduction to Data Structures.ppt
 
358 33 powerpoint-slides_4-introduction-data-structures_chapter-4
358 33 powerpoint-slides_4-introduction-data-structures_chapter-4358 33 powerpoint-slides_4-introduction-data-structures_chapter-4
358 33 powerpoint-slides_4-introduction-data-structures_chapter-4
 
UNIT 1.pptx
UNIT 1.pptxUNIT 1.pptx
UNIT 1.pptx
 
Basic concepts of data structures and algorithms
Basic concepts of data structures and algorithmsBasic concepts of data structures and algorithms
Basic concepts of data structures and algorithms
 
FALLSEM2022-23_BCSE202L_TH_VL2022230103292_Reference_Material_I_25-07-2022_Fu...
FALLSEM2022-23_BCSE202L_TH_VL2022230103292_Reference_Material_I_25-07-2022_Fu...FALLSEM2022-23_BCSE202L_TH_VL2022230103292_Reference_Material_I_25-07-2022_Fu...
FALLSEM2022-23_BCSE202L_TH_VL2022230103292_Reference_Material_I_25-07-2022_Fu...
 
algo 1.ppt
algo 1.pptalgo 1.ppt
algo 1.ppt
 
Cs 331 Data Structures
Cs 331 Data StructuresCs 331 Data Structures
Cs 331 Data Structures
 
Iare ds ppt_3
Iare ds ppt_3Iare ds ppt_3
Iare ds ppt_3
 
jn;lm;lkm';m';;lmppt of data structure.pdf
jn;lm;lkm';m';;lmppt of data structure.pdfjn;lm;lkm';m';;lmppt of data structure.pdf
jn;lm;lkm';m';;lmppt of data structure.pdf
 

More from Prof. Dr. K. Adisesha

Software Engineering notes by K. Adisesha.pdf
Software Engineering notes by K. Adisesha.pdfSoftware Engineering notes by K. Adisesha.pdf
Software Engineering notes by K. Adisesha.pdfProf. Dr. K. Adisesha
 
Software Engineering-Unit 1 by Adisesha.pdf
Software Engineering-Unit 1 by Adisesha.pdfSoftware Engineering-Unit 1 by Adisesha.pdf
Software Engineering-Unit 1 by Adisesha.pdfProf. Dr. K. Adisesha
 
Software Engineering-Unit 2 "Requirement Engineering" by Adi.pdf
Software Engineering-Unit 2 "Requirement Engineering" by Adi.pdfSoftware Engineering-Unit 2 "Requirement Engineering" by Adi.pdf
Software Engineering-Unit 2 "Requirement Engineering" by Adi.pdfProf. Dr. K. Adisesha
 
Software Engineering-Unit 3 "System Modelling" by Adi.pdf
Software Engineering-Unit 3 "System Modelling" by Adi.pdfSoftware Engineering-Unit 3 "System Modelling" by Adi.pdf
Software Engineering-Unit 3 "System Modelling" by Adi.pdfProf. Dr. K. Adisesha
 
Software Engineering-Unit 4 "Architectural Design" by Adi.pdf
Software Engineering-Unit 4 "Architectural Design" by Adi.pdfSoftware Engineering-Unit 4 "Architectural Design" by Adi.pdf
Software Engineering-Unit 4 "Architectural Design" by Adi.pdfProf. Dr. K. Adisesha
 
Software Engineering-Unit 5 "Software Testing"by Adi.pdf
Software Engineering-Unit 5 "Software Testing"by Adi.pdfSoftware Engineering-Unit 5 "Software Testing"by Adi.pdf
Software Engineering-Unit 5 "Software Testing"by Adi.pdfProf. Dr. K. Adisesha
 
Computer Networks Notes by -Dr. K. Adisesha
Computer Networks Notes by -Dr. K. AdiseshaComputer Networks Notes by -Dr. K. Adisesha
Computer Networks Notes by -Dr. K. AdiseshaProf. Dr. K. Adisesha
 
CCN Unit-1&2 Data Communication &Networking by K. Adiaesha
CCN Unit-1&2 Data Communication &Networking by K. AdiaeshaCCN Unit-1&2 Data Communication &Networking by K. Adiaesha
CCN Unit-1&2 Data Communication &Networking by K. AdiaeshaProf. Dr. K. Adisesha
 
CCN Unit-3 Data Link Layer by Dr. K. Adisesha
CCN Unit-3 Data Link Layer by Dr. K. AdiseshaCCN Unit-3 Data Link Layer by Dr. K. Adisesha
CCN Unit-3 Data Link Layer by Dr. K. AdiseshaProf. Dr. K. Adisesha
 
CCN Unit-4 Network Layer by Dr. K. Adisesha
CCN Unit-4 Network Layer by Dr. K. AdiseshaCCN Unit-4 Network Layer by Dr. K. Adisesha
CCN Unit-4 Network Layer by Dr. K. AdiseshaProf. Dr. K. Adisesha
 
CCN Unit-5 Transport & Application Layer by Adi.pdf
CCN Unit-5 Transport & Application Layer by Adi.pdfCCN Unit-5 Transport & Application Layer by Adi.pdf
CCN Unit-5 Transport & Application Layer by Adi.pdfProf. Dr. K. Adisesha
 

More from Prof. Dr. K. Adisesha (20)

Software Engineering notes by K. Adisesha.pdf
Software Engineering notes by K. Adisesha.pdfSoftware Engineering notes by K. Adisesha.pdf
Software Engineering notes by K. Adisesha.pdf
 
Software Engineering-Unit 1 by Adisesha.pdf
Software Engineering-Unit 1 by Adisesha.pdfSoftware Engineering-Unit 1 by Adisesha.pdf
Software Engineering-Unit 1 by Adisesha.pdf
 
Software Engineering-Unit 2 "Requirement Engineering" by Adi.pdf
Software Engineering-Unit 2 "Requirement Engineering" by Adi.pdfSoftware Engineering-Unit 2 "Requirement Engineering" by Adi.pdf
Software Engineering-Unit 2 "Requirement Engineering" by Adi.pdf
 
Software Engineering-Unit 3 "System Modelling" by Adi.pdf
Software Engineering-Unit 3 "System Modelling" by Adi.pdfSoftware Engineering-Unit 3 "System Modelling" by Adi.pdf
Software Engineering-Unit 3 "System Modelling" by Adi.pdf
 
Software Engineering-Unit 4 "Architectural Design" by Adi.pdf
Software Engineering-Unit 4 "Architectural Design" by Adi.pdfSoftware Engineering-Unit 4 "Architectural Design" by Adi.pdf
Software Engineering-Unit 4 "Architectural Design" by Adi.pdf
 
Software Engineering-Unit 5 "Software Testing"by Adi.pdf
Software Engineering-Unit 5 "Software Testing"by Adi.pdfSoftware Engineering-Unit 5 "Software Testing"by Adi.pdf
Software Engineering-Unit 5 "Software Testing"by Adi.pdf
 
Computer Networks Notes by -Dr. K. Adisesha
Computer Networks Notes by -Dr. K. AdiseshaComputer Networks Notes by -Dr. K. Adisesha
Computer Networks Notes by -Dr. K. Adisesha
 
CCN Unit-1&2 Data Communication &Networking by K. Adiaesha
CCN Unit-1&2 Data Communication &Networking by K. AdiaeshaCCN Unit-1&2 Data Communication &Networking by K. Adiaesha
CCN Unit-1&2 Data Communication &Networking by K. Adiaesha
 
CCN Unit-3 Data Link Layer by Dr. K. Adisesha
CCN Unit-3 Data Link Layer by Dr. K. AdiseshaCCN Unit-3 Data Link Layer by Dr. K. Adisesha
CCN Unit-3 Data Link Layer by Dr. K. Adisesha
 
CCN Unit-4 Network Layer by Dr. K. Adisesha
CCN Unit-4 Network Layer by Dr. K. AdiseshaCCN Unit-4 Network Layer by Dr. K. Adisesha
CCN Unit-4 Network Layer by Dr. K. Adisesha
 
CCN Unit-5 Transport & Application Layer by Adi.pdf
CCN Unit-5 Transport & Application Layer by Adi.pdfCCN Unit-5 Transport & Application Layer by Adi.pdf
CCN Unit-5 Transport & Application Layer by Adi.pdf
 
Introduction to Computers.pdf
Introduction to Computers.pdfIntroduction to Computers.pdf
Introduction to Computers.pdf
 
R_Programming.pdf
R_Programming.pdfR_Programming.pdf
R_Programming.pdf
 
Scholarship.pdf
Scholarship.pdfScholarship.pdf
Scholarship.pdf
 
Operating System-2 by Adi.pdf
Operating System-2 by Adi.pdfOperating System-2 by Adi.pdf
Operating System-2 by Adi.pdf
 
Operating System-1 by Adi.pdf
Operating System-1 by Adi.pdfOperating System-1 by Adi.pdf
Operating System-1 by Adi.pdf
 
Operating System-adi.pdf
Operating System-adi.pdfOperating System-adi.pdf
Operating System-adi.pdf
 
JAVA PPT -2 BY ADI.pdf
JAVA PPT -2 BY ADI.pdfJAVA PPT -2 BY ADI.pdf
JAVA PPT -2 BY ADI.pdf
 
JAVA PPT -5 BY ADI.pdf
JAVA PPT -5 BY ADI.pdfJAVA PPT -5 BY ADI.pdf
JAVA PPT -5 BY ADI.pdf
 
JAVA PPT -3 BY ADI.pdf
JAVA PPT -3 BY ADI.pdfJAVA PPT -3 BY ADI.pdf
JAVA PPT -3 BY ADI.pdf
 

Recently uploaded

Interdisciplinary_Insights_Data_Collection_Methods.pptx
Interdisciplinary_Insights_Data_Collection_Methods.pptxInterdisciplinary_Insights_Data_Collection_Methods.pptx
Interdisciplinary_Insights_Data_Collection_Methods.pptxPooja Bhuva
 
FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024Elizabeth Walsh
 
OSCM Unit 2_Operations Processes & Systems
OSCM Unit 2_Operations Processes & SystemsOSCM Unit 2_Operations Processes & Systems
OSCM Unit 2_Operations Processes & SystemsSandeep D Chaudhary
 
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdfUGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdfNirmal Dwivedi
 
REMIFENTANIL: An Ultra short acting opioid.pptx
REMIFENTANIL: An Ultra short acting opioid.pptxREMIFENTANIL: An Ultra short acting opioid.pptx
REMIFENTANIL: An Ultra short acting opioid.pptxDr. Ravikiran H M Gowda
 
Single or Multiple melodic lines structure
Single or Multiple melodic lines structureSingle or Multiple melodic lines structure
Single or Multiple melodic lines structuredhanjurrannsibayan2
 
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...pradhanghanshyam7136
 
COMMUNICATING NEGATIVE NEWS - APPROACHES .pptx
COMMUNICATING NEGATIVE NEWS - APPROACHES .pptxCOMMUNICATING NEGATIVE NEWS - APPROACHES .pptx
COMMUNICATING NEGATIVE NEWS - APPROACHES .pptxannathomasp01
 
80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...
80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...
80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...Nguyen Thanh Tu Collection
 
latest AZ-104 Exam Questions and Answers
latest AZ-104 Exam Questions and Answerslatest AZ-104 Exam Questions and Answers
latest AZ-104 Exam Questions and Answersdalebeck957
 
Python Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxPython Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxRamakrishna Reddy Bijjam
 
Jamworks pilot and AI at Jisc (20/03/2024)
Jamworks pilot and AI at Jisc (20/03/2024)Jamworks pilot and AI at Jisc (20/03/2024)
Jamworks pilot and AI at Jisc (20/03/2024)Jisc
 
ICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxAreebaZafar22
 
Plant propagation: Sexual and Asexual propapagation.pptx
Plant propagation: Sexual and Asexual propapagation.pptxPlant propagation: Sexual and Asexual propapagation.pptx
Plant propagation: Sexual and Asexual propapagation.pptxUmeshTimilsina1
 
Understanding Accommodations and Modifications
Understanding  Accommodations and ModificationsUnderstanding  Accommodations and Modifications
Understanding Accommodations and ModificationsMJDuyan
 
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...ZurliaSoop
 
Graduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - EnglishGraduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - Englishneillewis46
 
Basic Intentional Injuries Health Education
Basic Intentional Injuries Health EducationBasic Intentional Injuries Health Education
Basic Intentional Injuries Health EducationNeilDeclaro1
 
Exploring_the_Narrative_Style_of_Amitav_Ghoshs_Gun_Island.pptx
Exploring_the_Narrative_Style_of_Amitav_Ghoshs_Gun_Island.pptxExploring_the_Narrative_Style_of_Amitav_Ghoshs_Gun_Island.pptx
Exploring_the_Narrative_Style_of_Amitav_Ghoshs_Gun_Island.pptxPooja Bhuva
 

Recently uploaded (20)

Interdisciplinary_Insights_Data_Collection_Methods.pptx
Interdisciplinary_Insights_Data_Collection_Methods.pptxInterdisciplinary_Insights_Data_Collection_Methods.pptx
Interdisciplinary_Insights_Data_Collection_Methods.pptx
 
FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024
 
OSCM Unit 2_Operations Processes & Systems
OSCM Unit 2_Operations Processes & SystemsOSCM Unit 2_Operations Processes & Systems
OSCM Unit 2_Operations Processes & Systems
 
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdfUGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
 
REMIFENTANIL: An Ultra short acting opioid.pptx
REMIFENTANIL: An Ultra short acting opioid.pptxREMIFENTANIL: An Ultra short acting opioid.pptx
REMIFENTANIL: An Ultra short acting opioid.pptx
 
Single or Multiple melodic lines structure
Single or Multiple melodic lines structureSingle or Multiple melodic lines structure
Single or Multiple melodic lines structure
 
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
 
COMMUNICATING NEGATIVE NEWS - APPROACHES .pptx
COMMUNICATING NEGATIVE NEWS - APPROACHES .pptxCOMMUNICATING NEGATIVE NEWS - APPROACHES .pptx
COMMUNICATING NEGATIVE NEWS - APPROACHES .pptx
 
80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...
80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...
80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...
 
latest AZ-104 Exam Questions and Answers
latest AZ-104 Exam Questions and Answerslatest AZ-104 Exam Questions and Answers
latest AZ-104 Exam Questions and Answers
 
Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024
 
Python Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxPython Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docx
 
Jamworks pilot and AI at Jisc (20/03/2024)
Jamworks pilot and AI at Jisc (20/03/2024)Jamworks pilot and AI at Jisc (20/03/2024)
Jamworks pilot and AI at Jisc (20/03/2024)
 
ICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptx
 
Plant propagation: Sexual and Asexual propapagation.pptx
Plant propagation: Sexual and Asexual propapagation.pptxPlant propagation: Sexual and Asexual propapagation.pptx
Plant propagation: Sexual and Asexual propapagation.pptx
 
Understanding Accommodations and Modifications
Understanding  Accommodations and ModificationsUnderstanding  Accommodations and Modifications
Understanding Accommodations and Modifications
 
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
 
Graduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - EnglishGraduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - English
 
Basic Intentional Injuries Health Education
Basic Intentional Injuries Health EducationBasic Intentional Injuries Health Education
Basic Intentional Injuries Health Education
 
Exploring_the_Narrative_Style_of_Amitav_Ghoshs_Gun_Island.pptx
Exploring_the_Narrative_Style_of_Amitav_Ghoshs_Gun_Island.pptxExploring_the_Narrative_Style_of_Amitav_Ghoshs_Gun_Island.pptx
Exploring_the_Narrative_Style_of_Amitav_Ghoshs_Gun_Island.pptx
 

Data_structure using C-Adi.pdf

  • 1. Data Structures using C Dr. K ADISESHA
  • 2. Please bring to class each day Introduction Types of Data structures Arrays Stacks and Queues Linked lists 2 Data Structures  Dr. K ADISESHA
  • 3. Introduction Dr. K. Adisesha 3 Data Structures: Data ➢ Data is a collection of facts, numbers, letters or symbols that the computer process into meaningful information. Data structure ➢ Data structure is representation of the logical relationship existing between individual elements of data. ➢ Data structure is a specialized format for organizing and storing data in memory that considers not only the elements stored but also their relationship to each other.
  • 4. Introduction Dr. K. Adisesha 4 Why to Learn Data Structure: As applications are getting complex and data rich, there are three common problems that applications face now-a-days ➢ Data Search − Consider an inventory of 1 million(106) items of a store. If the application is to search an item, it has to search an item in 1 million(106) items every time slowing down the search. As data grows, search will become slower. ➢ Processor speed − Processor speed although being very high, falls limited if the data grows to billion records. ➢ Multiple requests − As thousands of users can search data simultaneously on a web server, even the fast server fails while searching the data..
  • 5. Introduction Dr. K. Adisesha 5 Data Structures: Data structure affects the design of both structural & functional aspects of a program. ➢ A algorithm is a step by step procedure to solve a particular function. ➢ Program=algorithm + Data Structure
  • 6. Introduction Dr. K. Adisesha 6 Applications of Data Structure and Algorithms: Algorithm is a step-by-step procedure, which defines a set of instructions to be executed in a certain order to get the desired output. Algorithms are generally created independent of underlying languages. ➢ From the data structure point of view, following are some important categories of algorithms. ❖ Insert − Algorithm to insert item in a data structure. ❖ Traverse − Algorithm to visit every item in a data structure. ❖ Update − Algorithm to update an existing item in a data structure. ❖ Search − Algorithm to search an item in a data structure. ❖ Sort − Algorithm to sort items in a certain order. ❖ Delete − Algorithm to delete an existing item from a data structure.
  • 7. Introduction Dr. K. Adisesha 7 Characteristics of an Algorithm: An algorithm should have the following characteristics −. ➢ Unambiguous − Algorithm should be clear and unambiguous. Each of its steps (or phases), and their inputs/outputs should be clear and must lead to only one meaning. ➢ Input − An algorithm should have 0 or more well-defined inputs. ➢ Output − An algorithm should have 1 or more well-defined outputs, and should match the desired output. ➢ Finiteness − Algorithms must terminate after a finite number of steps. ➢ Feasibility − Should be feasible with the available resources. ➢ Independent − An algorithm should have step-by-step directions, which should be independent of any programming code.
  • 8. Introduction Dr. K. Adisesha 8 Characteristics of a Data Structure: Data Structure is a systematic way to organize data in order to use it efficiently. Following terms are the Characteristics of a data structure. ➢ Correctness − Data structure implementation should implement its interface correctly. ➢ Time Complexity − Running time or the execution time of operations of data structure must be as small as possible. ➢ Space Complexity − Memory usage of a data structure operation should be as little as possible.
  • 9. Introduction Dr. K. Adisesha 9 Algorithm Analysis: Efficiency of an algorithm can be analyzed at two different stages, before implementation and after implementation. They are the following . ➢ A Priori Analysis − This is a theoretical analysis of an algorithm. Efficiency of an algorithm is measured by assuming factors, like processor speed, are constant and have no effect on the implementation. ➢ A Posterior Analysis − This is an empirical analysis of an algorithm. The selected algorithm is implemented using programming language. In this analysis, actual statistics like running time and space required, are collected.
  • 10. Introduction Dr. K. Adisesha 10 Algorithm Complexity: The complexity of an algorithm represents the amount of memory space and time required by the algorithm in its life cycle. ➢ Space complexity − Space complexity of an algorithm represents the amount of memory space required by the algorithm in its life cycle.. ➢ Time complexity − Time complexity of an algorithm represents the amount of time required by the algorithm to run to completion.
  • 11. Example  Calculate  Lines 1 and 4 count for one unit each  Line 3: executed N times, each time four units  Line 2: (1 for initialization, N+1 for all the tests, N for all the increments) total 2N + 2  total cost: 6N + 4  O(N)  = N i i 1 3 1 2 3 4 1 2N+2 4N 1
  • 12. Introduction Dr. K. Adisesha 12 Asymptotic Analysis of an algorithm: Asymptotic analysis of an algorithm refers to Asymptotic analysis refers to computing the running time of any operation in mathematical units of computation of its run-time performance. ➢ The Asymptotic analysis of an algorithm falls under three types: ❖ Best Case − Minimum time required for program execution. ❖ Average Case − Average time required for program execution. ❖ Worst Case − Maximum time required for program execution.
  • 13. Introduction Dr. K. Adisesha 13 Asymptotic Notations of an algorithm: Following are the commonly used asymptotic notations to calculate the running time complexity of an algorithm.. ➢ The Asymptotic Notations of an algorithm falls under three types: ❖ Big Oh Notation, Ο− It measures the worst case time complexity. ❖ Omega Notation, Ω− It measures the best case time complexity. ❖ Theta Notation, θ− It measures the Average case time complexity.
  • 14. Introduction Dr. K. Adisesha 14 Big Oh Notation, ( Ο )of an algorithm: The notation Ο(n) is the formal way to express the upper bound of an algorithm's running time. ➢ It measures the worst case time complexity or the longest amount of time an algorithm can possibly take to complete. ▪ For example, for a function f(n) ▪ It is represented as follows ▪ Ο(f(n)) = { g(n) : there exists c > 0 and n0 such that f(n) ≤ c.g(n) for all n > n0. }
  • 15. Introduction Dr. K. Adisesha 15 Omega Notation, Ω of an algorithm: The notation Ω(n) is the formal way to express the lower bound of an algorithm's running time. It measures the best case time complexity or the best amount of time an algorithm can possibly take to complete • For example, for a function f(n) • It is represented as follows • Ω(f(n)) ≥ { g(n) : there exists c > 0 and n0 such that g(n) ≤ c.f(n) for all n > n0. }
  • 16. Introduction Dr. K. Adisesha 16 Theta Notation, θ of an algorithm: The notation θ(n) is the formal way to express both the lower bound and the upper bound of an algorithm's running time. ▪ For example, for a function f(n) ▪ It is represented as follows ▪ θ(f(n)) = { g(n) if and only if g(n) = Ο(f(n)) and g(n) = Ω(f(n)) for all n > n0. }
  • 17. Introduction Dr. K. Adisesha 17 Common Asymptotic Notations: Following is a list of some common asymptotic notations. ❖ constant − Ο(1) ❖ logarithmic− Ο(log n) ❖ linear − Ο(n) ❖ n log n − Ο(n log n) ❖ quadratic − Ο(n2) ❖ cubic − Ο(n3) ❖ polynomial − nΟ(1) ❖ exponential− 2Ο(n)
  • 18. Introduction Dr. K. Adisesha 18 Basic Terminology: The basic terminologies which are usually used to compare various data structure's are: ➢ Data − Data are values or set of values or set of real world facts. ➢ Data Item − Data item refers to single unit of values. ➢ Group Items − Data items that are divided into sub items are called as Group Items. ➢ Elementary Items − Data items that cannot be divided are called as Elementary Items. ➢ Attribute and Entity − An entity is that which contains certain attributes or properties, which may be assigned values. ➢ Entity Set − Entities of similar attributes form an entity set. ➢ Field − Field is a single elementary unit of information representing an attribute of an entity. ➢ Record − Record is a collection of field values of a given entity. ➢ File − File is a collection of records of the entities in a given entity set.
  • 19. Data Structures Dr. K. Adisesha 19 Data Type: Data type is a way to classify various types of data which determines the values that can be used with the corresponding type of data, the type of operations that can be performed on the corresponding type of data. There are two data types: ➢ Built-in Data Type: Those data types for which a language has built-in support are known as Built-in Data type. ➢ Derived Data Type: Those data types which are implementation independent as they can be implemented in one or the other way are known as derived data types.
  • 20. Data Structures Dr. K. Adisesha 20 Classification of Data Structure using C: Data structure are normally divided into two broad categories: ➢ Primitive Data Structure ➢ Non-Primitive Data Structure ❖ Linear Data Structure ❖ Non-Linear Data Structure
  • 21. Data Structures Dr. K. Adisesha 21 Primitive Data Structure: Data structures that are directly operated upon the machine-level instructions are known as primitive data structures: ➢ There are basic structures and directly operated upon by the machine instructions. ➢ The Data structures that fall in this category are. ❖ Integer ❖ Floating-point number ❖ Character constants ❖ string constants ❖ pointers etc.,
  • 22. Data Structures Dr. K. Adisesha 22 Primitive Data Structure: Data structures that are directly operated upon the machine-level instructions are known as primitive data structures: ➢ The most commonly used operation on data structure are broadly categorized into following types: ❖ Create ❖ Insertion ❖ Selection ❖ Updating ❖ Destroy or Delete
  • 23. Data Structures Dr. K. Adisesha 23 Non-Primitive Data Structure: The Data structures that are derived from the primitive data structures are called Non- primitive data structure: ➢ There are more sophisticated data structures ➢ The non-primitive data structures emphasize on structuring of a group of homogeneous (same type) or heterogeneous (different type) data items: ❖ Linear Data structures ❖ Non-Linear Data structures
  • 24. Data Structures Dr. K. Adisesha 24 Non-Primitive Data Structure: Linear Data structures Linear Data structures are kind of data structure that has homogeneous elements. ➢ The data structure in which elements are in a sequence and form a liner series. ➢ Linear data structures are very easy to implement, since the memory of the computer is also organized in a linear fashion. ➢ Some commonly used linear data structures are: ❖ Stack ❖ Queue ❖ Linked Lists
  • 25. Data Structures Dr. K. Adisesha 25 Non-Primitive Data Structure: Non-Linear Data structures A Non-Linear Data structures is a data structure in which data item is connected to several other data items. ➢ Non-Linear data structure may exhibit either a hierarchical relationship or parent child relationship. ➢ The data elements are not arranged in a sequential structure. ➢ Some commonly used non-linear data structures are: ❖ Trees ❖ Graphs
  • 26. Data Structures Dr. K. Adisesha 26 Non-Primitive Data Structure: The most commonly used operation on data structure are broadly categorized into following types: ❖ Traversal ❖ Insertion ❖ Selection ❖ Searching ❖ Sorting ❖ Merging ❖ Destroy or Delete
  • 27. Data Structures Dr. K. Adisesha 27 Differences between Data Structure: The most commonly used differences between on data structure are broadly categorized into following types: ➢ A primitive data structure is generally a basic structure that is usually built into the language, such as an integer, a float. ➢ A non-primitive data structure is built out of primitive data structures linked together in meaningful ways, such as a or a linked-list, binary search tree, AVL Tree, graph etc.
  • 28. Recursion Dr. K. Adisesha 28 Recursion: Recursion is the process of repeating items in a self-similar way. In programming languages, if a program allows you to call a function inside the same function, then it is called a recursive call of the function. ➢ while using recursion, programmers need to be careful to define an exit condition from the function, otherwise it will go into an infinite loop. ➢ Recursive functions are very useful to solve many mathematical problems, such as calculating the factorial of a number, generating Fibonacci series, etc.
  • 29. Recursion Dr. K. Adisesha 29 Recursion: Recursion is the process in which a function calls itself up to n-number of times. If a program allows the user to call a function inside the same function recursively, the procedure is called a recursive call of the function. ➢ Types of Recursion in C: ❖ Direct Recursion ❖ Indirect Recursion ❖ Tail Recursion ❖ No Tail/ Head Recursion ❖ Linear recursion ❖ Tree Recursion
  • 30. Recursion Dr. K. Adisesha 30 Types of the recursion: Following are the types of the recursion in C programming language, as follows: ➢ Direct Recursion: When a function calls itself within the same function repeatedly, it is called the direct recursion. ➢ Indirect Recursion: When a function is mutually called by another function in a circular manner, the function is called an indirect recursion function. Direct Recursion: fun() { // write some code fun(); // some code } Indirect Recursion: fun1() { // write some code fun2(); } fun2() { // write some code fun1(); // write some code }
  • 31. Recursion Dr. K. Adisesha 31 Types of the recursion: Following are the types of the recursion in C programming language, as follows: ➢ Tail Recursion: A recursive function is called the tail-recursive if the function makes recursive calling itself, and that recursive call is the last statement executes by the function. After that, there is no function or statement is left to call the recursive function. ➢ Head Recursion: A function is called the non-tail or head recursive if a function makes a recursive call itself, the recursive call will be the first statement in the function. ➢ Linear recursion: A function is called the linear recursive if the function makes a single call to itself at each time the function runs and grows linearly in proportion to the size of the problem. ➢ Tree Recursion: A function is called the tree recursion, in which the function makes more than one call to itself within the recursive function.
  • 32. Recursion Dr. K. Adisesha 32 Recursion: The C programming language supports recursion, i.e., a function to call itself. ➢ The following example calculates the factorial of a given number using a recursive function − #include <stdio.h> int factorial(int i) { if(i <= 1) { return 1; } return i * factorial(i - 1); } int main() { int i = 12; printf("Factorial of %d is %dn", i, factorial(i)); return 0; }
  • 33. Recursion Dr. K. Adisesha 33 Drawbacks of Recursion in Data Structure: There are some potential drawbacks to using recursion in data structures, including: ➢ Memory usage: Recursive algorithms can use a lot of memory, particularly if the recursion goes too deep or if the data structure is large. Each recursive call creates a new stack frame on the call stack, which can quickly add up to a significant amount of memory usage. ➢ Stack overflow: If the recursion goes too deep, it can cause a stack overflow error, which can crash the program. ➢ Performance: Recursive algorithms can be less efficient than iterative algorithms in some cases, particularly if the data structure is large or if the recursion goes too deep. ➢ Debugging: Recursive algorithms can be more difficult to debug than iterative algorithms, particularly if the recursion goes too deep or if the program is using multiple recursive calls. ➢ Code complexity: Recursive algorithms can be more complex than iterative algorithm.
  • 34. Recursion Dr. K. Adisesha 34 Difference between Recursion and Iteration: Basis Recursion Iteration Basis of repetition Recursion is based on the idea of a function calling itself. The base case is the simplest version of the problem that can be solved without recursion. Iteration, on the other hand, uses looping constructs such as "for" and "while" to repeat a process a certain number of times or until a specific condition is met. Control flow Recursion relies on the call stack to keep track of function calls and their parameters. Each recursive call pushes a new function call onto the call stack, and each return pops the function call off the stack. Iteration, on the other hand, does not rely on the call stack and uses variables and control structures to control the flow of execution. Performance Recursion can be more elegant and easier to understand for certain types of problems Iteration is often more efficient than recursion, especially for large datasets or complex algorithms.
  • 35. Arrays Dr. K. Adisesha 35 Arrays: An array is defined as a set of finite number of homogeneous elements or same data items: ➢ Following are the important terms to understand the concept of Array. ❖ Element − Each item stored in an array is called an element. ❖ Index − Each location of an element in an array has a numerical index, which is used to identify the element. ➢ Declaration of array is as follows: ❖ Syntax: Datatype Array_Name [Size]; ❖ Example: int arr[10]; ✓ Where int specifies the data type or type of elements arrays stores. ✓ “arr” is the name of array & the number specified inside the square brackets is the number of elements an array can store, this is also called sized or length of array.
  • 36. Arrays Dr. K. Adisesha 36 Array as ADT (Abstract Data Type) using C: Abstract Data type (ADT) is a type (or class) for objects whose behavior is defined by a set of values and a set of operations. The definition of ADT only mentions what operations are to be performed but not how these operations will be implemented.: ➢ Abstract Data type (ADT) – ❖ Representation of Data. ❖ Set of Operations on the Data. ❖ The first thing is we need an array space of some size. Here we initialize an array of size = 10 and length = 0 because there are no elements in the array
  • 37. Arrays Dr. K. Adisesha 37 Array as ADT (Abstract Data Type) using C: We can perform more operations on the array data structure but the above are some basic operations. Let us give some information about the above functions- ➢ Display () – To Display the entire array on the screen. ➢ Add(n) / Append(n) – To add a particular element on the end of the array. ➢ Insert (index, n) – To add an element to a particular index. ➢ Delete (index) – To delete an element with the help of an index in the given array. ➢ Search (n) – To check whether the given element is present or not in an array. ➢ Get (index) – It will return the element which presents on the given index. ➢ Set (index, x) – It will change the element with the new element at a particular index. ➢ Max () / Min () – These will return the max and min element in the given array. ➢ Reverse () – It will reverse the order of elements in the given array. ➢ Shift () – It will shift the whole elements either on the left or right side by the given number.
  • 38. Arrays Dr. K. Adisesha 38 Types of Arrays: The elements of array will always be stored in the consecutive (continues) memory location. The various types of Arrays are: ➢ Single Dimension Array: ❖ Array with one subscript ❖ Ex: int A[i]; ➢ Two Dimension Array ❖ Array with two subscripts (Rows and Column) ❖ Ex: int A[i][j]; ➢ Multi Dimension Array: ❖ Array with Multiple subscripts ❖ Ex: int A[i][j]..[n];
  • 39. Arrays Dr. K. Adisesha 39 Arrays: Represent a Linear Array in memory: ➢ The elements of linear array are stored in consecutive memory locations. ➢ It is shown below: int A[5]={23, 4, 6, 15, 5, 7}
  • 40. Arrays Dr. K. Adisesha 40 Calculating the length of the array: The elements of array will always be stored in the consecutive (continues) memory location. ➢ The number of elements that can be stored in an array, that is the size of array or its length is given by the following equation: o A[n] is the array size or length of n elements. o The length of the array can be calculated by: L = UB – LB + 1 o To Calculate the address of any element in array: Loc(A[P])=Base(A)+W(P-LB) o Here, UB is the largest Index and LB is the smallest index ➢ Example: If an array A has values 10, 20, 30, 40, 50, stored in location 0,1, 2, 3, 4 the UB = 4 and LB=0 Size of the array L = 4 – 0 + 1 = 5
  • 41. Arrays Dr. K. Adisesha 41 Two dimensional array: A two dimensional array is a collection of elements and each element is identified by a pair of subscripts. ( A[3] [3] ). ➢ The elements are stored in continuous memory locations. ➢ The elements of two-dimensional array as rows and columns. ➢ The number of rows and columns in a matrix is called as the order of the matrix and denoted as MxN. ➢ The number of elements can be obtained by multiplying number of rows and number of columns. A[0] A[1] A[2] A[0] 10 20 30 A[1] 40 50 60 A[2] 70 80 90
  • 42. Arrays Dr. K. Adisesha 42 Representation of Two Dimensional Array: A two dimensional array is a collection of elements and each element is identified by a pair of subscripts. ( A[m] [n] ) ➢ A is the array of order m x n. To store m*n number of elements, we need m*n memory locations. ➢ The elements should be in contiguous memory locations. ➢ There are two methods: ❖ Row-major method ❖ Column-major method A[0] A[1] A[2] A[0] 10 20 30 A[1] 40 50 60 A[2] 70 80 90
  • 43. Arrays Dr. K. Adisesha 43 Representation of Two Dimensional Array: Row-Major Method: ➢ All the first-row elements are stored in sequential memory locations and then all the second-row elements are stored and so on. Ex: A[Row][Col] Column-Major Method: ➢ All the first column elements are stored in sequential memory locations and then all the second-column elements are stored and so on. Ex: A [Col][Row] 1000 10 A[0][0] 1002 20 A[0][1] 1004 30 A[0][2] 1006 40 A[1][0] 1008 50 A[1][1] 1010 60 A[1][2] 1012 70 A[2][0] 1014 80 A[2][1] 1016 90 A[2][2] 1000 10 A[0][0] 1002 40 A[1][0] 1004 70 A[2][0] 1006 20 A[0][1] 1008 50 A[1][1] 1010 80 A[2][1] 1012 30 A[0][2] 1014 60 A[1][2] 1016 90 A[2][2] Row-Major Method Col-Major Method
  • 44. Arrays Dr. K. Adisesha 44 Calculating the length of the 2D-Array : A two dimensional array is a collection of elements and each element is identified by a pair of subscripts. ( A[m] [n] ) ➢ The size of array or its length is given by the following equation: A[i][j] is the array size or length of m*n elements. ➢ To Calculate the address of i*j th element in array: ❖ Row-Major Method: Loc(A[i][j])=Base(A)+W[n(i-LB)+(j-LB)] ❖ Col-Major Method: Loc(A[i][j])=Base(A)+W[(i-LB)+m(j-LB)] Here, W is the number of words per memory location and LB is the smallest index
  • 45. Arrays Dr. K. Adisesha 45 Advantages of Array : A two dimensional array is a collection of elements and each element is identified by a pair of subscripts. ( A[m] [n] ) ➢ It is used to represent multiple data items of same type by using single name. ➢ It can be used to implement other data structures like linked lists, stacks, queues, tree, graphs etc. ➢ Two-dimensional arrays are used to represent matrices. ➢ Many databases include one-dimensional arrays whose elements are records.
  • 46. Arrays Dr. K. Adisesha 46 Disadvantages of Array : A two dimensional array is a collection of elements and each element is identified by a pair of subscripts. ( A[m] [n] ) ➢ We must know in advance the how many elements are to be stored in array. ➢ Array is static structure. It means that array is of fixed size. The memory which is allocated to array cannot be increased or decreased. ➢ Array is fixed size; if we allocate more memory than requirement then the memory space will be wasted. ➢ The elements of array are stored in consecutive memory locations. So insertion and deletion are very difficult and time consuming.
  • 47. Arrays Dr. K. Adisesha 47 Basic operations of Arrays: Some common operation performed on array are: ❖ Traversing ❖ Insertion ❖ Deletion ❖ Searching ❖ Sorting ❖ Merging
  • 48. Arrays Dr. K. Adisesha 48 Traversing Arrays: Traversing: It is used to access each data item exactly once so that it can be processed: ➢ We have linear array A as below: 1 2 3 4 5 10 20 30 40 50 ➢ Here we will start from beginning and will go till last element and during this process we will access value of each element exactly once as below: A [0] = 10 A [1] = 20 A [2] = 30 A [3] = 40 A [4] = 50
  • 49. Arrays Dr. K. Adisesha 49 Traverse Operation: Following program traverses and prints the elements of an array:
  • 50. Arrays Dr. K. Adisesha 50 Insertion into Array: Insertion: It is used to add a new data item in the given collection of data items: ➢ We have linear array A as below: 1 2 3 4 5 10 20 50 30 15 ➢ New element to be inserted is 100 and location for insertion is 3. ➢ So shift the elements from 5th location to 3rd location downwards by 1 place. ➢ And then insert 100 at 3rd location
  • 51. Arrays Dr. K. Adisesha 51 Insertion into Array: Insertion into Array: ➢ Insertion 100 into Array at Pos=3 A [0] = 10 A [1] = 20 A [2] = 50 A [3] = 30 A [4] = 15
  • 52. Arrays Dr. K. Adisesha 52 Insertion into Array: Add a new data item in the given array of data: Insertion into Array: A [0] = 1 A [1] = 3 A [2] = 5 A [3] = 7 A [4] = 8
  • 53. Arrays Dr. K. Adisesha 53 Deletion from Array: Deletion: It is used to delete an existing data item from the given collection of data items: ➢ Deletion 30 from Array at Pos 3 A [0] = 10 A [1] = 20 A [2] = 30 A [3] = 40 A [4] = 50
  • 54. Arrays Dr. K. Adisesha 54 Deletion from Array: A [0] = 1 A [1] = 3 A [2] = 5 A [3] = 7 A [4] = 8
  • 55. Arrays Dr. K. Adisesha 55 Searching in Arrays: Searching: It is used to find out the location of the data item if it exists in the given collection of data items: ➢ E.g. We have linear array A as below: 1 2 3 4 5 10 20 50 30 35 ➢ Suppose item to be searched is 35. We will start from beginning and will compare 35 with each element. ➢ This process will continue until element is found or array is finished. ➢ Types of searching Algorithms: ❖ Linear searching ❖ Binary Searching
  • 56. Arrays Dr. K. Adisesha 56 Linear search: Linear Searching: Also called Sequential Searching. ➢ It is used to find out the location of the data item if it exists in the given collection of data items. ➢ Example Searching element 33 from the array of elements:
  • 57. Arrays Dr. K. Adisesha 57 Linear search: Linear Searching: Also called Sequential Searching.
  • 58. Arrays Dr. K. Adisesha 58 Binary Searching: The binary search algorithm can be used with only sorted list of elements. ➢ Binary Search first divides a large array into two smaller sub-arrays and then recursively operate the sub-arrays. ➢ Binary Search basically reduces the search space to half at each step
  • 59. Arrays Dr. K. Adisesha 59 Binary Searching: The binary search algorithm can be used with only sorted list of elements. ➢ Example: Searching the element 57 from the array of elements
  • 60. Arrays Dr. K. Adisesha 60 Binary Searching: ➢ Example:
  • 64. Arrays Dr. K. Adisesha 64 Sorting in Arrays: A Sorting Algorithm is used to rearrange a given array or list elements according to a comparison operator on the elements: ➢ The comparison operator is used to decide the new order of element in the respective data structure. ➢ Types of Sorting Algorithms are: ❖ Bubble Sort ❖ Insertion Sort ❖ Selection Sort ❖ Merge Sort ❖ Quick Sort ❖ Heap Sort ❖ Radix Sort ❖ Bucket Sort ❖ Shell Sort
  • 65. Arrays Dr. K. Adisesha 65 Bubble Sort in Arrays: Bubble Sort is the simplest sorting algorithm that works by repeatedly swapping the adjacent elements if they are in wrong order.
  • 66. Arrays Dr. K. Adisesha 66 Insertion Sorting: Insertion sort is a simple sorting algorithm that builds the final sorted array (or list) one item at a time. ➢ This is an in-place comparison-based sorting algorithm. Here, a sub-list is maintained which is always sorted.
  • 67. Arrays Dr. K. Adisesha 67 Insertion Sorting: This is an in-place comparison-based sorting algorithm. Here, a sub-list is maintained which is always sorted. ➢ This is an in-place comparison-based sorting algorithm. Here, a sub-list is maintained which is always sorted.
  • 68. Arrays Dr. K. Adisesha 68 Insertion Sorting:  ALGORITHM: Insertion Sort (A, N) A is an array with N unsorted elements. ◼ Step 1: for I=1 to N-1 ◼ Step 2: J = I While(J >= 1) if ( A[J] < A[J-1] ) then Temp = A[J]; A[J] = A[J-1]; A[J-1] = Temp; [End if] J = J-1 [End of While loop] [End of For loop] ◼ Step 3: Exit
  • 71. Arrays Dr. K. Adisesha 71 Merging from Array: Merging: It is used to combine the data items of two sorted files into single file in the sorted form. ➢ We have sorted linear array A as below: 1 2 3 4 5 6 10 40 50 80 95 100 ➢ And sorted linear array B as below: 1 2 3 4 20 35 45 90 ➢ After merging merged array C is as below: 1 2 3 4 5 6 7 8 9 10 10 20 35 40 45 50 80 90 95 100
  • 72. Lists Dr. K. Adisesha 72 Lists (linked list): A lists (Linear linked list) can be defined as a collection of variable number of data items called nodes. ➢ Lists are the most commonly used non-primitive data structures. ➢ Each nodes is divided into two parts: ❖ The first part contains the information of the element. ❖ The second part contains the memory address of the next node in the list. Also called Link part.
  • 73. Lists Dr. K. Adisesha 73 Lists (linked list): Types of linked lists: ➢ Single linked list ➢ Doubly linked list ➢ Single circular linked list ➢ Doubly circular linked list ➢ Header linked list
  • 74. Lists Dr. K. Adisesha 74 Single linked list: The link field of the last node contains the memory address of the first node, such a linked list is called circular linked list: ❖ The information field contains the data of that node. ❖ The link field contains the memory address of the next node. ❖ The last link field contains the memory address as null (). ➢ There is only one link field in each node, the linked list is called singly linked list.
  • 75. Lists Dr. K. Adisesha 75 Single circular linked list: A singly linked list contains two fields in each node - an information field and the linked field: ❖ The information field contains the data of that node. ❖ The link field contains the memory address of the next node ❖ The last link field contains the memory address of the first node. ➢ In a circular linked list every node is accessible from a given node.
  • 76. Lists Dr. K. Adisesha 76 Doubly linked list: It is a linked list in which each node is points both to the next node and also to the previous node: ➢ In doubly linked list each node contains three parts: ❖ FORW : It is a pointer field that contains the address of the next node ❖ BACK: It is a pointer field that contains the address of the previous node. ❖ INFO: It contains the actual data. ➢ In the first node, if BACK contains NULL, it indicated that it is the first node in the list. ➢ The in which FORW contains, NULL indicates that the node is the last node.
  • 77. Lists Dr. K. Adisesha 77 Doubly circular linked list: It is a linked list in which each node is points both to the next node and also to the previous node: ➢ In doubly linked list each node contains three parts: ❖ FORW : It is a pointer field that contains the address of the next node ❖ BACK: It is a pointer field that contains the address of the previous node. ❖ INFO: It contains the actual data.
  • 78. Lists Dr. K. Adisesha 78 Header linked list: A header node is a special node that is found at the beginning of the list. A list that contains this type of node, is called the header-linked list. ➢ This type of list is useful when information other than that found in each node is needed.: ➢ Types of Header Linked List: ❖Grounded Header Linked List :It is a list whose last node contains the NULL pointer. In the header linked list the start pointer always points to the header node. ❖Circular Header Linked List: A list in which last node points back to the header node is called circular linked list. The chains do not indicate first or last nodes.
  • 79. Lists Dr. K. Adisesha 79 Uses of Linked List: Linked List can be defined as collection of objects called nodes that are randomly stored in the memory. ➢ The list is not required to be contiguously present in the memory. The node can reside any where in the memory and linked together to make a list. This achieves optimized utilization of space. ➢ list size is limited to the memory size and doesn't need to be declared in advance. ➢ Empty node can not be present in the linked list. ➢ We can store values of primitive types or objects in the singly linked list.
  • 80. Lists Dr. K. Adisesha 80 Operation on Linked List: The operation that are performed on linked lists are: ➢ Creating a linked list ➢ Traversing a linked list ➢ Inserting an item into a linked list. ➢ Deleting an item from the linked list. ➢ Searching an item in the linked list ➢ Merging two or more linked lists.
  • 81. Lists Dr. K. Adisesha 81 Creating a linked list: The nodes of a linked list can be created by the following structure declaration: struct node { int info; struct node *next; }; struct node *head, *ptr; ptr = (struct node *)malloc(sizeof(struct node *)); Here info is the information field and next is the link field. ➢ The link field contains a pointer variable that refers the same node structure. Such a reference is called as Self addressing pointer.
  • 82. Lists Dr. K. Adisesha 82 Operator new and delete: The nodes of a linked list can be created by the following structure declaration: ➢ Operators new allocate memory space ➢ Operators new [ ] allocates memory space for array. ➢ Operators delete deallocate memory space. ➢ Operators delete [ ] deallocate memory space for array. struct Node { int information; struct Node *link; }*node1, *node2;
  • 83. 83 Traversing is the process of accessing each node of the linked list exactly once to perform some operation. ALGORITHM: TRAVERS (START, P) START contains the address of the first node. Another pointer p is temporarily used to visit all the nodes from the beginning to the end of the linked list. Step 1: P = START Step 2: while P != NULL Step 3: PROCESS data (P) [Fetch the data] Step 4: P = link(P) [Advance P to next node] Step 5: End of while Step 6: Return Traversing a linked list Dr. K. Adisesha
  • 84. 84 ➢ Inserting a node at the beginning of the linked list ➢ Inserting a node at the given position. ➢ Inserting a node at the end of the linked list. Lists Inserting a node into the linked list: Dr. K. Adisesha
  • 85. 85 Lists Inserting node at Front: Inserting a node at the beginning of the linked list 1. Create a node. 2. Fill data into the data field of the new node. 3. Mark its pointer field as NULL 4. Attach this newly created node to START 5. Make the new node as the START node. Dr. K. Adisesha
  • 86. 86 Lists Inserting node at Front: Inserting a node at the beginning of the linked list ALGORITHM: INS_BEG (START, P) START contains the address of the first node. Step 1: P new Node; Step 2: data(P) num; Step 3: link(P) START Step 4: START P Step 5: Return Dr. K. Adisesha
  • 87. 87 Lists Inserting node at End: Inserting a node at the End of the linked list 1. Create a node. 2. Fill data into the data field of the new node. 3. Mark its pointer field as NULL 4. Attach this newly created node to Last 5. Make the new node as the Last node. Dr. K. Adisesha
  • 88. ALGORITHM: INS_END (START, P) START contains the address of the first node. Step 1: START Step 2: P START [identify the last node] while P!= null P next (P) End while Step 3: N new Node; Step 4: data(N) item; Step 5: link(N) null Step 6: link(P) N Step 7: Return 88 Inserting node at End Dr. K. Adisesha
  • 89. 89 Inserting node at a given Position ALGORITHM: INS_POS (START, P1, P2) START contains the address of the first node. P2 is new node Step 1: START Step 2: P1 START [Initialize node] Count 0 Step 3: while P!= null count count+1 P1 next (P1) End while Step 4: if (POS=1) Call function INS_BEG( ) else if (POS=Count +1) Call function INS_END( ) else if (POS<=Count) P1 Start For(i=1; i<=pos; i++) P1 next(P1); end for [create] P2 new node data(P2) item; link(P2) link(P1) link(P1) P2 else PRINT “Invalid position” Step 5: Return Dr. K. Adisesha
  • 90. 90 Deleting an item from the linked list: ➢ Deletion of the first node ➢ Deletion of the last node ➢ Deletion of the node at the give position. Deleting an node Deleting an node: Dr. K. Adisesha
  • 91. 91 Deleting an node Deletion of the first node: This algorithm first copies data in the first node to a variable and delete the first node of the linked list. ALGORITHM: DEL_BEG(P, START) This used pointers P Step 1: START Step 2: P START; Step 3: PRINT data(P) Step 4: START Link(P) Step 5: Free(P) Step 6: STOP Dr. K. Adisesha
  • 92. 92 Deleting an node Deleting node from end: Dr. K. Adisesha
  • 93. ALGORITHM: DEL_END (P1, P2, START) This used two pointers P1 and P2. Pointer P2 is used to traverse the linked list and pointer P1 keeps the location of the previous node of P2. Step 1: START Step 2: P2 START; Step 3: while ( link(P2) ! = NULL) P1 P2 P2 link(P2) While end Step 4: PRINT data(p2) Step 5: link(P1) NULL Free(P2) Step 6: STOP 93 Deleting an node Deleting node from end: Dr. K. Adisesha
  • 94. Step 1: START Step 2: P1 START [Initialize node] Count 0 Step 3: while P!= null count count+1 P1 next (P1) End while Step 4: if (POS=1) Call function DEL_BEG( ) else if (POS=Count) Call function DEL_END( ) else if (POS<=Count) P2 Start For(i=1; i<=pos; i++) P1 P2 P2 link(P2) end for PRINT data(P2) link(P1) link( P2) free(P2) End if Step 5: Return 94 Deleting node at a given Position ALGORITHM: DEL_POS (START, P1, P2) START contains the address of the first node. P2 is DEL-node Dr. K. Adisesha
  • 95. Stack Dr. K. Adisesha 95 Stack: Stack is a linear data structure which follows a particular order in which the operations are performed ➢ Insertion of element into stack is called PUSH and deletion of element from stack is called POP. ➢ The order may be LIFO(Last In First Out) or FILO(First In Last Out).
  • 96. Stack Dr. K. Adisesha 96 Stack: Memory Representation of Stack ➢ The stack can be implemented into two ways: ❖ Using arrays (Static implementation) ❖ Using pointer (Dynamic
  • 97. Stack Dr. K. Adisesha 97 Operation on Stacks: The various operation performed on Stacks are: ➢ Stack( ): It creates a new stack that is empty. It needs no parameter and returns an empty stack. ➢ push(item): It adds a new item to the top of the stack. ➢ pop( ): It removes the top item from the stack. ➢ peek( ): It returns the top item from the stack but does not remove it. ➢ isEmpty( ): It tests whether the stack is empty. ➢ size( ): It returns the number of items on the stack.
  • 98. Stack Dr. K. Adisesha 98 Stack Conditions: The various operation performed on Stacks depend on the following conditions:
  • 99. Stack Dr. K. Adisesha 99 PUSH Operation: The process of adding one element or item to the stack is represented by an operation called as the PUSH operation: ALGORITHM: PUSH (STACK, TOP, SIZE, ITEM) STACK is the array with N elements. TOP is the pointer to the top of the element of the array. ITEM to be inserted. Step 1: if TOP = N then [Check Overflow] PRINT “ STACK is Full or Overflow” Exit [End if] Step 2: TOP = TOP + 1 [Increment the TOP] Step 3: STACK[TOP] = ITEM [Insert the ITEM] Step 4: Return
  • 100. Stack Dr. K. Adisesha 100 POP Operation: The process of deleting one element or item from the stack is represented by an operation called as the POP operation. When elements are removed continuously from a stack, it shrinks at same end i.e., top:
  • 101. ALGORITHM: POP (STACK, TOP, ITEM) STACK is the array with N elements. TOP is the pointer to the top of the element of the array. ITEM to be DELETED. Step 1: if TOP = 0 then [Check Underflow] PRINT “ STACK is Empty or Underflow” Exit [End if] Step 2: ITEM = STACK[TOP] [copy the TOP Element] Step 3: TOP = TOP - 1 [Decrement the TOP] Step 4: Return Stack Dr. K. Adisesha 101 POP Operation: The process of deleting one element or item from the stack is represented by an operation called as the POP operation.
  • 102. Stack Dr. K. Adisesha 102 PEEK Operation: The process of returning the top item from the stack but does not remove it called as the PEEK operation. ALGORITHM: PEEK (STACK, TOP) STACK is the array with N elements. TOP is the pointer to the top of the element of the array. Step 1: if TOP = NULL then [Check Underflow] PRINT “ STACK is Empty or Underflow” Exit [End if] Step 2: Return (STACK[TOP] [Return the top element of the stack] Step 3:Exit
  • 103. Stack Dr. K. Adisesha 103 Application of Stacks: ➢ It is used to reverse a word. You push a given word to stack – letter by letter and then pop letter from the stack. ➢ “Undo” mechanism in text editor. ➢ Backtracking: This is a process when you need to access the most recent data element in a series of elements. Once you reach a dead end, you must backtrack. ➢ Language Processing: Compiler’ syntax check for matching braces in implemented by using stack. ➢ Data Conversion of decimal number to binary. ➢ To solve tower of Hanoi. ➢ Conversion of infix expression into prefix and postfix. ➢ To sort elements using Quick sort ➢ Runtime memory management.
  • 104. An expression is a combination of operands and operators that after evaluation results in a single value. ◼ Operand consists of constants and variables. ◼ Operators consists of {, +, -, *, /, ), ] etc. ➢ Expression can be ❖ Infix Expression: If an operator is in between two operands, it is called infix expression. ✓ Example: a + b, where a and b are operands and + is an operator. ❖ Postfix Expression: If an operator follows the two operands, it is called postfix expression. ✓ Example: ab + ❖ Prefix Expression: an operator precedes the two operands, it is called prefix expression. ✓ Example: +ab Stack Dr. K. Adisesha 104 Arithmetic Expression:
  • 106. Queue Dr. K. Adisesha 106 Queue: A queue is an ordered collection of items where an item is inserted at one end called the “rear” and an existing item is removed at the other end, called the “front”. ➢ Queue is also called as FIFO list i.e. First-In First-Out. ➢ In the queue only two operations are allowed enqueue and dequeue. ➢ Enqueue means to insert an item into back of the queue. ➢ Dequeue means removing the front item.The people standing in a railway reservation row are an example of queue.
  • 107. Queue Dr. K. Adisesha 107 Queue: A queue is an ordered collection of items where an item is inserted at one end called the “rear” and an existing item is removed at the other end, called the “front”.
  • 108. Queue Dr. K. Adisesha 108 Memory Representation of Queue: The queue can be implemented into two ways: ➢ Using arrays (Static implementation) ➢ Using pointer (Dynamic
  • 109. Queue Dr. K. Adisesha 109 Memory Representation of Queue: Memory Representation of a queue using array: ➢ Queue is represented in memory using linear array. ➢ Let QUEUE is a array, two pointer variables called FRONT and REAR are maintained. ➢ The pointer variable FRONT contains the location of the element to be removed or deleted. ➢ The pointer variable REAR contains location of the last element inserted. ➢ The condition FRONT = NULL indicates that queue is empty. ➢ The condition REAR = N-1 indicates that queue is full.
  • 110. Queue Dr. K. Adisesha 110 Types of Queues : Queue can be of four types: ➢ Simple Queue ➢ Circular Queue ➢ Priority Queue ➢ De-queue ( Double Ended Queue)
  • 111. Queue Dr. K. Adisesha 111 Types of Queues : Simple Queue: ➢ Simple Queue: In simple queue insertion occurs at the rear end of the list and deletion occurs at the front end of the list.
  • 112. Queue Dr. K. Adisesha 112 Types of Queues : Circular Queue: ➢ Circular Queue: A circular queue is a queue in which all nodes are treated as circular such that the last node follows the first node.
  • 113. Queue Dr. K. Adisesha 113 Types of Queues : Priority Queue: ➢ A priority queue is a queue that contains items that have some present priority. An element can be inserted or removed from any position depending upon some priority.
  • 114. Queue Dr. K. Adisesha 114 Types of Queues : Dequeue Queue: ➢ Dequeue: It is a queue in which insertion and deletion takes place at the both ends.
  • 115. Queue Dr. K. Adisesha 115 Operation on Queues : The various operation performed on Queue are : ➢ Queue( ): It creates a new queue that is empty. ➢ enqueue(item): It adds a new item to the rear of the queue. ➢ dequeue( ): It removes the front item from the queue. ➢ isEmpty( ): It tests to see whether the queue is empty. ➢ size( ): It returns the number of items in the queue.
  • 116. Queue Dr. K. Adisesha 116 Queue Insertion Operation (ENQUEUE): ALGORITHM: ENQUEUE (QUEUE, REAR, FRONT, ITEM) QUEUE is the array with N elements. FRONT is the pointer that contains the location of the element to be deleted and REAR contains the location of the inserted element. ITEM is the element to be inserted. Step 1: if REAR = N-1 then [Check Overflow] Front Rear PRINT “QUEUE is Full or Overflow” Exit [End if] Step 2: if FRONT = NULL then [Check Whether Queue is empty] FRONT = -1 REAR = -1 else REAR = REAR + 1 [Increment REAR Pointer] Step 3: QUEUE[REAR] = ITEM [Copy ITEM to REAR position] Step 4: Return
  • 117. Queue Dr. K. Adisesha 117 Queue Deletion Operation (DEQUEUE):  ALGORITHM: DEQUEUE (QUEUE, REAR, FRONT, ITEM) QUEUE is the array with N elements. FRONT is the pointer that contains the location of the element to be deleted and REAR contains the location of the inserted element. ITEM is the element to be inserted.  Step 1: if FRONT = NULL then [Check Whether Queue is empty] Front Rear  PRINT “QUEUE is Empty or Underflow”  Exit  [End if]  Step 2: ITEM = QUEUE[FRONT]  Step 3: if FRONT = REAR then [if QUEUE has only one element]  FRONT = NULL  REAR = NULL  else  FRONT = FRONT + 1 [Increment FRONT pointer]  Step 4: Return
  • 118. Queue Dr. K. Adisesha 118 Application of Queue: ➢ Simulation ➢ Various features of Operating system ➢ Multi-programming platform systems. ➢ Different types of scheduling algorithms ➢ Round robin technique algorithms ➢ Printer server routines ➢ Various application software’s is also based on queue data structure.
  • 119. Non-Linear Data structures Dr. K. Adisesha 119 Non-Linear Data structures: A Non-Linear Data structures is a data structure in which data item is connected to several other data items: ➢ The data items in non-linear data structure represent hierarchical relationship. ➢ Each data item is called node. ➢ The different non-linear data structures are ❖ Trees ❖ Graphs.
  • 120. Non-Linear Data structures Dr. K. Adisesha 120 Trees: A tree is a data structure consisting of nodes organized as a hierarchy: ➢ Tree is a hierarchical data structure which stores the information naturally in the form of hierarchy style. ➢ It is a non-linear data structure compared to arrays, linked lists, stack and queue. ➢ It represents the nodes connected by edges.
  • 121. Non-Linear Data structures Dr. K. Adisesha 121 Terminology of a Tree:
  • 122. Non-Linear Data structures Dr. K. Adisesha 122 Binary Tree: A binary tree is an ordered tree in which each internal node can have maximum of two child nodes connected to it: ➢ A binary tree consists of: ❖ A node ( called the root node) ❖ Left and right sub trees. ➢ A Complete binary tree is a binary tree in which each leaf is at the same distance from the root i.e. all the nodes have maximum two subtrees. Binary tree using array represents a node which is numbered sequentially level by level from left to right. Even empty nodes are numbered.
  • 123. Non-Linear Data structures Dr. K. Adisesha 123 Graph: Graph is a mathematical non-linear data structure capable of representing many kind of physical structures: ➢ A graph is a set of vertices and edges which connect them. ➢ A graph is a collection of nodes called vertices and the connection between them called edges. ➢ Definition: A graph G(V,E) is a set of vertices V and a set of edges E.
  • 124. Non-Linear Data structures Dr. K. Adisesha 124 Graph: Graph is a mathematical non-linear data structure capable of representing many kind of physical structures: ➢ An edge connects a pair of vertices and many have weight such as length, cost and another measuring instrument for according the graph. ➢ Vertices on the graph are shown as point or circles and edges are drawn as arcs or line segment
  • 125. Non-Linear Data structures Dr. K. Adisesha 125 Graph: Types of Graphs: ❖ Directed graph ❖ Undirected graph ❖ Simple graph ❖ Weighted graph ❖ Connected graph ❖ Non-connected graph
  • 126. Data structures Dr. K. Adisesha 126 Thank you: