Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Matakuliah : T0534/Struktur Data Tahun : 2005 Versi : September 2005

Presentasi serupa


Presentasi berjudul: "Matakuliah : T0534/Struktur Data Tahun : 2005 Versi : September 2005"— Transcript presentasi:

1 Matakuliah : T0534/Struktur Data Tahun : 2005 Versi : September 2005
Pertemuan 05 STACK

2 Learning Outcomes Pada akhir pertemuan ini, diharapkan mahasiswa akan mampu : mendemonstrasikan TDA Stack (TIK-05). menerapkan STACK pada program aplikasi komputer (TIK-05).

3 Basis operasi Abstraksi Implementasi Outline Materi Obyek
Operasi/fungsi Implementasi Array Single Double Linked List

4 Basis Operasi Basis operasi pada STACK adalah LIFO (Last In First Out), Elemen yang diambil / dihapus adalah elemen yang baru dimasukkan / diinsert STACK PUSH POP C B D E A

5 TDA Stack ADT Stack Structure Stack is
Objects : a finite ordered list with zero or more elements. function : For all stack Є Stack, item Є element, max_ stack _size Є positive integer. Stack Create(max_stack_size) ::= create an empty stack whose maximumsize is max_ stack _size. Boolean IsFull(stack , max_ stack _size)::= if (number of elements in stack == max_ stack _size ) return TRUE else return FALSE Stack Push(stack ,item)::= if (IsFull(stack)) stack -full else insert item into top of stack and return. Boolean IsEmpty(stack)::= if (stack ==Create(max_ stack _size)) return TRUE else return FALSE Element Pop(stack)::= if (IsEmpty(stack)) return else remove and return the item on the top of stack.

6 Operasi CREATE() Untuk menciptakan stack yang baru dan kosong. CLEAR()
Untuk menghapus semua elemen dalam Stack. PUSH (ElementType e) Untuk memasukkan 1 elemen ke dalam Stack. POP (ElementType *e) Untuk mengambil 1 elemen dari Stack. int EMPTY() Untuk mengecek apakah Stack masih kosong atau sudah berisi data. int FULL() Untuk mengecek apakah Stack sudah penuh atau masih bisa menampung data.

7 Implementasi dg Array Dua jenis STACK :
Single STACK : menggunakan 1 ujung STACK utk PUSH maupun POP Double STACK : menggunakan 2 ujung STACK utk PUSH maupun POP Single STACK dg Array Double STACK dg Array TOP TOP1 TOP2 ( i ) Empty ( i ) Empty TOP TOP1 TOP2 ( ii ) ( ii ) TOP TOP1 TOP2 ( iii ) Full ( iii ) Full

8 Simulasi dg Array Contoh sebuah STACK memiliki jumlah maksimum 3 elemen: CREATE( ) 2 1 TOP PUSH( 60 ) POP( *e) PUSH( 50 ) 2 60 30 50 2 30 50 TOP TOP 1 1 2 50 1 TOP PUSH( 20 ) CLEAR( ) PUSH( 30 ) 2 60 30 50 2 2 30 50 TOP 1 1 TOP 1 TOP

9 Implementasi dg Linked List
Contoh Implementasi Stack dengan Linked List menggunakan bahasa C #include <stdio.h> #include <malloc.h> typedef int ElemenType; //misal data yg disimpan bertipe integer struct NODE{ ElemenType Data; struct NODE *Next; } *HEAD; struct Node *Head; void CREATE() { HEAD = NULL; } int EMPTY() { if(HEAD == NULL) return(1); else return(0); }

10 Implementasi dg Linked List(2)
void PUSH( ElemenType e ) { struct NODE *P; P=(struct NODE *)malloc(sizeof(struct NODE)); P->Data=e; P->Next = HEAD; HEAD = P; } void POP( ElemenType *e ) *e = HEAD->Data; P=HEAD; Head=HEAD->Next; free(P); } void CLEAR() { ElemenType X; while(!EMPTY()) POP(&X); }

11 Simulasi dg Linked List
CREATE( ) POP( *e ) HEAD NULL HEAD PUSH( 50 ) P HEAD 30 50 NULL 50 NULL CLEAR( ) PUSH( 30 ) HEAD NULL P HEAD 30 50 NULL PUSH( 80 ) P HEAD 80 30 50 NULL

12 Selesai


Download ppt "Matakuliah : T0534/Struktur Data Tahun : 2005 Versi : September 2005"

Presentasi serupa


Iklan oleh Google