Вы находитесь на странице: 1из 28

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
What is Data Structure?
Data Structure is a set of the same kind of
data processed by a computer.
It is a way of organizing data that considers
not only the items stored but also the relationship
of each data.

It is also the data type that is represented


and programmed in the computer.
Classification of Data Structure
Data Structure

Basic Data Structure Problem-Oriented

Abstract Data Type List Structure

Structure Type Basic Data Type Stack

Array Type Pointer Type Queue

Record Type Simple Type Tree

Integer Hash
Logical
Real Number
Enumeration
Character
Partial
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.
Basic Data Type Simple Type

Logical - used to perform logical operations,


such as AND, OR, and NOT
operations.

Enumeration - defined as a data type that


enumerates all possible values of
variables. In here, integers can be
named.
Partial - used to specify an original value
subset by constraining existing data
types.
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 ]
Element / Subscript / Index
Array Name
Structured Type Array Type

One Dimensional Array

Example:
Grade [ j ] Grade [ 0 ] = 95
Grade [ 5 ] Grade [ 1 ] = 85
Grade [ 2 ] = 75
Grade [ 3 ] = 100
Grade [ 4 ] = 65
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 ]
Base type index
Array Name
Structured Type Array Type

Two Dimensional Array Row major


Grade [0,0] = 71
Grade [0,1] = 85
Example: Grade [ 3 , 4 ] Grade [0,2] = 90
Grade [0,3] = 95
Grade C0 C1 C2 C3 Grade [1,0] = 97
Grade [1,1] = 88
R0 71 85 90 95 Grade [1,2] = 78
Grade [1,3] = 87
R1 97 88 78 87 Grade [2,0] = 76
Grade [2,1] = 84
R2 76 84 92 65 Grade [2,2] = 92
Grade [2,3] = 65
Structured Type Array Type

Two Dimensional Array Column major


Grade [0,0] = 71
Grade [1,0] = 97
Example: Grade [ 3 , 4 ] Grade [2,0] = 76
Grade [0,1] = 85
Grade C0 C1 C2 C3 Grade [1,1] = 88
Grade [2,1] = 84
R0 71 85 90 95 Grade [0,2] = 90
Grade [1,2] = 78
R1 97 88 78 87 Grade [2,2] = 92
Grade [0,3] = 95
R2 76 84 92 65 Grade [1,3] = 87
Grade [2,3] = 65
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


Loc [k] = base + w (k-LB)

To get the number of elements in an array


NE = UB – LB + 1
Memory Map
Elements Address
3 245
4 249
5 253
Locate 
6 257
7 261
8 265
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
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 number of elements in an array
M = UB1 – LB1 + 1 NE = M x N
N = UB2 – LB2 + 1

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) ]
Memory Map
COLUMN
2 3 4 5 6

-3 81 83 85 87 89
R -2 91 93 95 97 99
O
W
-1 101 103 105 107 109 ROW MAJOR
 Locate
0 111 113 115 117 119

BACK
Memory Map
COLUMN
2 3 4 5 6

-3 81 89 97 105 113
R -2 83 91 99 107 115
O
W
-1 85 93 101 109 117 COLUMN MAJOR
 Locate
0 87 95 103 111 119

BACK
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.
Address

100
a [1,1]
101
102
a [1,2]
103

a. 145 b. 185 c. 190 d. 208 e. 212


Problem-Oriented Data Structure
List Structure
A linear collection of data elements called
nodes and where linear order is given by means
of pointers.

NODE

DATA POINTER
Data  FIELD FIELD
 Address
Problem-Oriented Data Structure
Types of List Structure

Uni-directional List

01H 05H 03H 07H

MARCOS 05H AQUINO 03H RAMOS 07H ESTRADA NULL

HEAD TAIL
Problem-Oriented Data Structure
Types of List Structure

Bi-directional List
01H 05H 03H

NULL MARCOS 05H 01H AQUINO 03H 05H RAMOS 07H

HEAD

07H

03H ESTRADA NULL

TAIL
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).

 Top

Bottom 
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
Exercise
What will be the content of the stack after
performing the following operation?

1. Pop (S)
2. Push (E,S) D
3. Push (F,S)
C
4. Pop (S)
5. Pop (S) B
6. Push (G) A
Problem-Oriented Data Structure
STACK APPLICATION

INFIX - an expression PREFIX - an expression


where operator is placed where operator is placed
in between the operands before the operands
Example : (A + B) Example : (+AB)

POSTFIX - an expression
where operator is placed
after the operands
Example : (AB+)
Exercise
Convert the following mathematical
expression into INFIX, PREFIX, and POSTFIX
Notation.

1.) AB2 2.) A B / G + M-N3 (G+H-J2)


+E
C- D 3 F
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 Binary Tree
/
B C D
* +
E F G H I J
A B C D
K L M
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.) FM3^*S/K*M3^L*-QP2^*+