28
ADT ( Abstract Data Type) BY DE ROSAL IGN. MOSES S.

ADT - DINUSdinus.ac.id/repository/docs/ajar/03_-_ADT_and_Stack(5).pdf · program that uses ADT. ADT of Object Collection Array/ Table 2 dimensional array /Matrix Linear list ... Diktat

Embed Size (px)

Citation preview

Page 1: ADT - DINUSdinus.ac.id/repository/docs/ajar/03_-_ADT_and_Stack(5).pdf · program that uses ADT. ADT of Object Collection Array/ Table 2 dimensional array /Matrix Linear list ... Diktat

ADT(Abstract Data Type)BY DE ROSAL IGN. MOSES S.

Page 2: ADT - DINUSdinus.ac.id/repository/docs/ajar/03_-_ADT_and_Stack(5).pdf · program that uses ADT. ADT of Object Collection Array/ Table 2 dimensional array /Matrix Linear list ... Diktat

What is ADT?

ADT defined in terms of its data items and associated operations, not its

implementation.

In other word, ADT must have data +

operation (function)

Data

Abstract Data Type

Operations

Page 3: ADT - DINUSdinus.ac.id/repository/docs/ajar/03_-_ADT_and_Stack(5).pdf · program that uses ADT. ADT of Object Collection Array/ Table 2 dimensional array /Matrix Linear list ... Diktat

Analogy of ADT

Student

nim = 12345

name=Dul

createStudent

showStudent

Data

Operation

Page 4: ADT - DINUSdinus.ac.id/repository/docs/ajar/03_-_ADT_and_Stack(5).pdf · program that uses ADT. ADT of Object Collection Array/ Table 2 dimensional array /Matrix Linear list ... Diktat
Page 5: ADT - DINUSdinus.ac.id/repository/docs/ajar/03_-_ADT_and_Stack(5).pdf · program that uses ADT. ADT of Object Collection Array/ Table 2 dimensional array /Matrix Linear list ... Diktat
Page 6: ADT - DINUSdinus.ac.id/repository/docs/ajar/03_-_ADT_and_Stack(5).pdf · program that uses ADT. ADT of Object Collection Array/ Table 2 dimensional array /Matrix Linear list ... Diktat
Page 7: ADT - DINUSdinus.ac.id/repository/docs/ajar/03_-_ADT_and_Stack(5).pdf · program that uses ADT. ADT of Object Collection Array/ Table 2 dimensional array /Matrix Linear list ... Diktat

ADT in C Programming

We can use struct for data and procedure or function for operations

One ADT in one directory:

Specification : header.h

Body of primitives : .c

Test driver as main

ADT specification never contains variables

Variable declaration in the main program that uses ADT

Page 8: ADT - DINUSdinus.ac.id/repository/docs/ajar/03_-_ADT_and_Stack(5).pdf · program that uses ADT. ADT of Object Collection Array/ Table 2 dimensional array /Matrix Linear list ... Diktat

ADT of Object Collection

Array/ Table

2 dimensional array /Matrix

Linear list

Stack

Queue

Tree

Page 9: ADT - DINUSdinus.ac.id/repository/docs/ajar/03_-_ADT_and_Stack(5).pdf · program that uses ADT. ADT of Object Collection Array/ Table 2 dimensional array /Matrix Linear list ... Diktat

STACK

Page 10: ADT - DINUSdinus.ac.id/repository/docs/ajar/03_-_ADT_and_Stack(5).pdf · program that uses ADT. ADT of Object Collection Array/ Table 2 dimensional array /Matrix Linear list ... Diktat

What is Stack?

Basically way to store information

The characteristic is LIFO (Last In First Out)

Stack has two main behaviors:

PUSH : Add item to top

POP : Remove item to top

Stack Pointer always points to the top

element

Top element called TOP

TOP is the only address where the operation occurs

5

4

3

2

1

Top

Bottom

Stack

Pointer

Page 11: ADT - DINUSdinus.ac.id/repository/docs/ajar/03_-_ADT_and_Stack(5).pdf · program that uses ADT. ADT of Object Collection Array/ Table 2 dimensional array /Matrix Linear list ... Diktat

Ilustration of Stack

5

3

1

Top

Bottom

Stack

Pointer

Push(1)

Push(3)

Push(5)

Pop()

Pop()

NULL

Page 12: ADT - DINUSdinus.ac.id/repository/docs/ajar/03_-_ADT_and_Stack(5).pdf · program that uses ADT. ADT of Object Collection Array/ Table 2 dimensional array /Matrix Linear list ... Diktat
Page 13: ADT - DINUSdinus.ac.id/repository/docs/ajar/03_-_ADT_and_Stack(5).pdf · program that uses ADT. ADT of Object Collection Array/ Table 2 dimensional array /Matrix Linear list ... Diktat
Page 14: ADT - DINUSdinus.ac.id/repository/docs/ajar/03_-_ADT_and_Stack(5).pdf · program that uses ADT. ADT of Object Collection Array/ Table 2 dimensional array /Matrix Linear list ... Diktat

Stack Implementation In C

Page 15: ADT - DINUSdinus.ac.id/repository/docs/ajar/03_-_ADT_and_Stack(5).pdf · program that uses ADT. ADT of Object Collection Array/ Table 2 dimensional array /Matrix Linear list ... Diktat

With Array (Static memory allocation)

Declaration

Page 16: ADT - DINUSdinus.ac.id/repository/docs/ajar/03_-_ADT_and_Stack(5).pdf · program that uses ADT. ADT of Object Collection Array/ Table 2 dimensional array /Matrix Linear list ... Diktat

Main Program

Function push

Page 17: ADT - DINUSdinus.ac.id/repository/docs/ajar/03_-_ADT_and_Stack(5).pdf · program that uses ADT. ADT of Object Collection Array/ Table 2 dimensional array /Matrix Linear list ... Diktat

Function pop

Function show

Page 18: ADT - DINUSdinus.ac.id/repository/docs/ajar/03_-_ADT_and_Stack(5).pdf · program that uses ADT. ADT of Object Collection Array/ Table 2 dimensional array /Matrix Linear list ... Diktat

Result

Function Show

Page 19: ADT - DINUSdinus.ac.id/repository/docs/ajar/03_-_ADT_and_Stack(5).pdf · program that uses ADT. ADT of Object Collection Array/ Table 2 dimensional array /Matrix Linear list ... Diktat

ADT - Stack

Page 20: ADT - DINUSdinus.ac.id/repository/docs/ajar/03_-_ADT_and_Stack(5).pdf · program that uses ADT. ADT of Object Collection Array/ Table 2 dimensional array /Matrix Linear list ... Diktat
Page 21: ADT - DINUSdinus.ac.id/repository/docs/ajar/03_-_ADT_and_Stack(5).pdf · program that uses ADT. ADT of Object Collection Array/ Table 2 dimensional array /Matrix Linear list ... Diktat
Page 22: ADT - DINUSdinus.ac.id/repository/docs/ajar/03_-_ADT_and_Stack(5).pdf · program that uses ADT. ADT of Object Collection Array/ Table 2 dimensional array /Matrix Linear list ... Diktat

ADT Stack in C

Page 23: ADT - DINUSdinus.ac.id/repository/docs/ajar/03_-_ADT_and_Stack(5).pdf · program that uses ADT. ADT of Object Collection Array/ Table 2 dimensional array /Matrix Linear list ... Diktat
Page 24: ADT - DINUSdinus.ac.id/repository/docs/ajar/03_-_ADT_and_Stack(5).pdf · program that uses ADT. ADT of Object Collection Array/ Table 2 dimensional array /Matrix Linear list ... Diktat
Page 25: ADT - DINUSdinus.ac.id/repository/docs/ajar/03_-_ADT_and_Stack(5).pdf · program that uses ADT. ADT of Object Collection Array/ Table 2 dimensional array /Matrix Linear list ... Diktat
Page 26: ADT - DINUSdinus.ac.id/repository/docs/ajar/03_-_ADT_and_Stack(5).pdf · program that uses ADT. ADT of Object Collection Array/ Table 2 dimensional array /Matrix Linear list ... Diktat
Page 27: ADT - DINUSdinus.ac.id/repository/docs/ajar/03_-_ADT_and_Stack(5).pdf · program that uses ADT. ADT of Object Collection Array/ Table 2 dimensional array /Matrix Linear list ... Diktat

Referensi

Diktat Struktur Data ITB edisi 2008

Introduction to Data Structure/ IF2030 Algoritma dan Struktur Data 2009

Stack(tumpukan), Tim PengajarIF2030, 2009

Youtube Video (Data Structures-Abstract Data Type (ADT))

Youtube Video (What is a Stack Data

Structure - An Introduction to Stacks)

Page 28: ADT - DINUSdinus.ac.id/repository/docs/ajar/03_-_ADT_and_Stack(5).pdf · program that uses ADT. ADT of Object Collection Array/ Table 2 dimensional array /Matrix Linear list ... Diktat

THANKS