Pertemuan 9 Stack dengan Linked-list Matakuliah : T0026/Struktur Data Tahun : 2005 Versi : 1/1 Pertemuan 9 Stack dengan Linked-list
Learning Outcomes Pada akhir pertemuan ini, diharapkan mahasiswa akan mampu : Mahasiswa dapat menghasilkan program modular ADT stack yang diimplementasikan dengan linked list
Pengertian dan kegunaan implementasi stack linked-list Outline Materi Pengertian dan kegunaan implementasi stack linked-list operasi stack linked list contoh program stack linked list
Implementasi Stack dengan Single Linked-list top 8 7 9 NULL struct stack { int ip; stack *link; };
Contoh STACK LL 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
void addstack (stack **top, int item) { stack *temp; temp = (struct stack *) malloc …; temp->ip = item; if (*top==NULL) { *top = temp; temp->link = NULL; } else { temp->link = *top;
int deletestack (stack **top) { int item; stack *temp; if (*top==NULL) { printf ("stack empty\n"); exit(1); } temp = *top; *top = temp->link; item = temp->ip; free(temp); return item;
void main() { … //Untuk insert stack : for (i=0; i<5; i++) { printf("nilai: "); scanf("%d",&nilai); addstack (&top, nilai); } //Untuk delete stack : nilai = deletestack (&top);
STACK Linked List Linked List Keuntungannya dibandingkan dg array adalah alokasi memory yg dinamis 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); }
Implementasi STACK LL 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); }