Matakuliah
Tahun
Versi
: T0026/Struktur Data
: 2005
: 1/1
Pertemuan 9
Stack dengan Linked-list
1
Learning Outcomes
Pada akhir pertemuan ini, diharapkan mahasiswa
akan mampu :
• Mahasiswa dapat menghasilkan program
modular ADT stack yang
diimplementasikan dengan linked list
2
Outline Materi
•
•
•
•
Pengertian dan kegunaan
implementasi stack linked-list
operasi stack linked list
contoh program stack linked list
3
Implementasi Stack dengan
Single Linked-list
top
7
8
9
NULL
struct stack {
int
ip;
stack *link;
};
4
Contoh STACK LL
CREATE( )
HEAD
PUSH( 50 )
P HEAD
50
POP( *e )
HEAD
NULL
30
NULL
CLEAR( )
HEAD
PUSH( 30 )
P HEAD
30
50
NULL
30
50
50
NULL
NULL
PUSH( 80 )
P HEAD
80
NULL
5
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;
*top = temp;
}
}
6
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;
}
7
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);
…
}
8
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); }
9
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 )
{ struct NODE *P;
*e = HEAD->Data;
P=HEAD;
Head=HEAD->Next;
free(P); }
void CLEAR()
{ ElemenType X;
while(!EMPTY()) POP(&X); }
10
© Copyright 2026 Paperzz