2. Objectives :
• To understand how various data structures
can be classified
• To understand the most commonly used, basic
data types and data arrays
• To understand the characteristics and
mechanisms of problem-oriented data
structures used to solve specific problems, as
well as how to use a basic data structure for
program implementation
2K. Adisesha
3. Data
It is an entity piece of information that is fact.
Information
Instruction + Data
Data Structure
It is a way of organizing data that considers not
only the items stored but also the relationship of
each data.
3K. Adisesha
4. Definition
Primitive data structures
Data structure which can be directly operated by
machine level instruction
Non primitive data structures
Data structure which can not be directly operated by
machine level instruction
Linear data structure
Non-Linear data structure
4K. Adisesha
5. Data Structure
Problem-OrientedBasic Data Structure
List Structure
Stack
Queue
Basic Data TypeStructure Type
Abstract Data Type
Hash
Tree
Array Type
Record Type Simple Type
Pointer Type
Integer
Real Number
Character
Enumeration
Partial
Logical
5K. Adisesha
6. Dynamic memory allocation and pointers
Recursion
Searching and Sorting
Stack
Queue
Linked list
Tree
6K. Adisesha
7. Basic Data Type Simple Type
Integer - represents whole number and is
represented inside a computer as binary
numbers of fixed-point numbers that have no
significant digits below the decimal point.
Real Number - represents fixed-point and
floating point numbers.
Character - represents fixed-point and floating point
numbers.
Logical - used to perform logical operations,
such as AND, OR, and NOT operations.
7K. Adisesha
8. Structured Type Array Type
One Dimensional Array
One of the simplest and most common type
of data structure. It is an ordered set consisting of a
variable number of elements.
The number of subscripts of an array
determines its dimensionality.
ArrayX [ j ]
Array Name
Element / Subscript / Index
8K. Adisesha
10. Structured Type Array Type
Two Dimensional Array
An array with two subscripts. The first
subscripts is called the “row”, and the second is
called the “column”.
int ArrayX [ j ,
k ]
Array Name
indexBase type
10K. Adisesha
13. Exercise
An array has an index of x[3..8] and start at
the address 245. It has 4 words per memory cell.
What will the location of element x[5]?
To get the location of elements
To get the number of elements in an
array
Loc [k] = base + w (k-LB)
NE = UB – LB + 1
13K. Adisesha
15. Exercise
An automobile company uses array AUTO to
record the number of automobile sold each year
from 1932 to 1996. Locate AUTO[1980]. Assume
801 as starting address with 5 words long. Also find
the length of the array AUTO.
ANSWER:
Loc[1980] = 1041
NE = 65
15K. Adisesha
16. Exercise
Given a 4x5 array with [-3..0, 2..6) index,
starting address is 81 with 2 words per memory cell.
Locate [-1,5] using row major and column major
representation.
To get the location of elements (ROW
MAJOR)Loc [j,k] = base + w [ N (j-LB1) + (k-
LB2) ]
To get the location of elements (COLUMN MAJOR
Loc [j,k] = base + w [ M (k-LB2) + (j-
LB1) ]
To get the number of elements in an
arrayM = UB1 – LB1 + 1
N = UB2 – LB2 + 1
NE = M x N
16K. Adisesha
17. Memory Map
COLUM
N
Locate
BAC
2 3 4 5 6
-3 81 83 85 87 89
-2 91 93 95 97 99
-1
10
1
103 105 107 109
0
11
1
113 115 117 119
R
O
W
ROW
MAJOR
17K. Adisesha
18. Memory Map
COLUM
N
Locate
BAC
2 3 4 5 6
-3 81 89 97 105 113
-2 83 91 99 107 115
-1 85 93 101 109 117
0 87 95 103 111 119
R
O
W
COLUMN
MAJOR
18K. Adisesha
19. Exercise
When storing a two-dimensional array “a” with ten rows
and ten columns in continuous memory space in the direction
of rows, what is the address where a [5,6] is stored? In this
question, the address is represented in decimal numbers.
a [1,1]
a [1,2]
Addres
s
100
101
102
103
a. 145 c. 190b. 185 e. 212d. 208
19K. Adisesha
20. Problem-Oriented Data Structure
List Structure
A linear collection of data elements
called nodes and where linear order is
given by means of pointers.
DATA POINTER
FIELD FIELD
NODE
AddressData
20K. Adisesha
21. Problem-Oriented Data Structure
Types of List
Structure
Uni-directional
List
RAMOS 07H
03H
AQUINO 03H
05H
MARCOS 05H
01H
HEAD
ESTRADA NULL
07H
TAIL
21K. Adisesha
22. Problem-Oriented Data Structure
Types of List
Structure
Bi-directional List
NULL MARCOS 05H
01H
HEAD
01H AQUINO 03H
05H
05H RAMOS 07H
03H
03H ESTRADA NULL
07H
TAIL
22K. Adisesha
23. Problem-Oriented Data Structure
STACK
An ordered list where all operations are
restricted at one end of the list known as TOP.
List processing is based on Last-In First-Out
(LIFO).
Bottom
Top
23K. Adisesha
24. Problem-Oriented Data Structure
STACK OPERATION
PUSH - inserts a new element at the
top of the stack
POP - retrieves the element at the top
and deletes it from stack.
TOP - retrieves the element at the top
of the stack
24K. Adisesha
25. Exercise
What will be the content of the stack after
performing the following operation?
1.Pop (S)
2.Push (E,S)
3.Push (F,S)
4.Pop (S)
5.Pop (S)
6.Push (G)
D
C
B
A
25K. Adisesha
26. Problem-Oriented Data Structure
STACK APPLICATION
INFIX - an expression
where operator is
placed in between the
operands
Example : (A + B)
PREFIX - an expression
where operator is placed
before the operands
Example : (+AB)
POSTFIX - an expression
where operator is placed
after the operands
Example : (AB+)
26K. Adisesha
27. Problem-Oriented Data Structure
TREE Structure
It is a collection of data items called nodes.
Each node has a relationship with one or more nodes
thereby giving a hierarchical structure.
A
CB D
FE G IH J
LK M
Binary Tree
/
+*
CB DA
27K. Adisesha
28. Exercise
Create a Tree Structure based on the given
prefix and postfix notation.
1.) - + / *A B G M * ^ N 3 - + G H ^ I 2
2.) F M 3 ^ * S / K * M 3 ^ L * - Q P 2 ^ * +
28K. Adisesha
29. 1. Write a C program to search for an element in an array using Binary
search
2. Write a C program to sort a list of N elements using Bubble sort
Technique
3. Write a C program to demonstrate the working of stack of size N using an
array. The elements of the stack may assume to be of type integer or real,
the operations to be supported are 1. PUSH 2. POP 3. DISPLAY. The
program should print appropriate messages for STACK overflow, Under flow
and empty, use separate functions to detect these cases
4. Write a C program to simulate the working of an ordinary Queue using an
array. Provide the operations QINSERT, QDELETE and QDISPLAY. Check
the Queue status for empty and full.
5. Write a C program to simulate the working of an Circular Queue using an
array. Provide the operations CQINSERT, CQDELETE and CQDISPLAY.
Check the Circular Queue status for empty and full.
K. Adisesha 29
30. 6. Using dynamic variables and pointers Write a C program to construct a singly linked list
consisting of the following information in each node;
Roll - No (Integer), Name (Character string) The operations to be supported are ;
1. LINSERT Inserting a node in the front of the list
2. LDELETE Deleting the node based on Roll - No
3. LSEARCH Searching a node based on Roll-No
4. LDISPLAY Displaying all the nodes in the list
7. Write a C program to sort a list of N elements using Merge sort Algorithm
8. Using Dynamic variables and pointers construct Binary search tree of integers , Write C
functions to do the following ;
1. Given a KEY, Perform a search in Binary search tree . If it is found display Key
found else insert the key in the Binary search tree.
2. While constructing the Binary search tree do not add any duplicate
3. Display the tree using any of the traversal method
K. Adisesha 30
31. 9. Write a C program to sort a list of N elements of integer type using
heap sort Algorithm
10. Write a C program to simulate the working of Towers of Hanoi
problem for N disks , print the total number of Moves taken by the
program.
11. Write a C program to sort a list of N elements of integer type using
quick sort Algorithm
12. Write a C program to find ncr using recursion
K. Adisesha 31