Data structures using c

adisesha12 15,930 views 32 slides Mar 14, 2016
Slide 1
Slide 1 of 32
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32

About This Presentation

Data Structures using C ppt, by Prof. K. Adisesha


Slide Content

Prof. K. Adisesha
[email protected]

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

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

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

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

Dynamic memory allocation and pointers
Recursion
Searching and Sorting
Stack
Queue
Linked list
Tree
6K. Adisesha

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

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

Structured Type Array Type
One Dimensional Array

Example:
Grade [ j ] Grade [ 0 ] = 95
Grade [ 5 ] Grade [ 1 ] = 85
Grade [ 3 ] = 100
Grade [ 2 ] = 75
Grade [ 4 ] = 65
9K. Adisesha

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

Structured Type Array Type
Two Dimensional
Array
Example:Grade [ 3 ,
4 ]
Grade
C0C1C2C3
R071859095
R197887887
R276849265
Grade [0,0] = 71
Grade [0,1] = 85
Grade [0,2] = 90
Grade [0,3] = 95
Grade [1,0] = 97
Grade [1,1] = 88
Grade [1,2] = 78
Grade [1,3] = 87
Grade [2,0] = 76
Grade [2,1] = 84
Grade [2,2] = 92
Grade [2,3] = 65
Row
major
11K. Adisesha

Structured Type Array Type
Two Dimensional
Array
Example:Grade [ 3 ,
4 ]
Grade
C0C1C2C3
R071859095
R197887887
R276849265
Grade [0,0] = 71
Grade [1,0] = 97
Grade [2,0] = 76
Grade [0,1] = 85
Grade [1,1] = 88
Grade [2,1] = 84
Grade [0,2] = 90
Grade [1,2] = 78
Grade [2,2] = 92
Grade [0,3] = 95
Grade [1,3] = 87
Grade [2,3] = 65
Column major
12K. Adisesha

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

Memory Map
3 245
4 249
5 253
6 257
7 261
8 265
Element
s
Address
Locate

14K. Adisesha

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

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

Memory Map
COLUM
N

Locate
BAC
K
23456
-38183858789
-29193959799
-1
10
1
103105107109
0
11
1
113115117119
R
O
W
ROW
MAJOR
17K. Adisesha

Memory Map
COLUM
N

Locate
BAC
K
23456
-3818997105113
-2839199107115
-18593101109117
08795103111119
R
O
W
COLUMN
MAJOR
18K. Adisesha

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

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

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

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

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

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

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

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

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

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

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

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

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 nc
r
using recursion
K. Adisesha 31

Thank you
K. Adisesha 32
Tags