1
Umum
2
Buku Literatur
3
Buku Literatur
4
Buku Literatur
5
materi
1. Stack
2. Queue
3 Linked List
3.
4. Tree
5. Graph
6 Search
6. Sea ch & So
Sortt
6
Pokok Pembahasan
. Stack
Stac
. Queue
Q
. Tree
. Graph
p
7
struktur Peng-alokasi-an
memory
Stack
Stack Satu Queue
dimensi Tree
linear Array
(statis)
Queue Dua
D
Graph
dimensi
T
Tree Stack
non Linear Queue
linear Linked-
List
Graph (dinamis) Non Tree
Linear Graph
8
STACK
6 3 & 7
6.3 7.3
3
NESTED LOOP
9
STACK
( TUMPUKAN )
10
delete
insert
A stack is an ordered
collection of items into which 7
new items may be inserted and 6
from which items may be 5
deleted at one end, called the
4
top off the
h stack.
k
3
2
( Y
Yedidyah
did h LL, M
Moshe
h JJ. A
A., and
d A
Aaron M.
M 1
Tenenbaum;
Data Structures Using C and C++)
11
1. Single Stack.
Stack Tunggal,
Stac ungga , satu stack a am satu co
stac dalam collection
ct on
Top 4 Buku-4 1
3 Buku-3 2
2 Buku-2 3
1 Buku-1 4
Meja
12
Dalam struktur STACK,
STACK digunakan istilah :
13
1.2 Representasi Single Stack menggunakan
Array Satu Dimensi.
misal n = 10
m
n-1
0 1 2 3 4 5 6 7 8 9
S[ ] 25 12 17 10
Top
T
Top X
Top
T
Top X
n-1
n
0 1 2 3 4 5 6 7 8 9
S[ ] 25 12 17 10
Top
Top X
S[ ] X X X X
Top 17
1.2.2 Prinsip / Konsep Proses pada Stack
LIFO (Last
(L t In
I First
Fi t Out)
O t)
a. AWAL (Inisialisasi)
b. PUSH (Insert, Masuk, Simpan, Tulis)
c. POP (D
(Delete,
l t K Keluar,
l A
Ambil
bil , B
Baca / H
Hapus))
18
a) Proses AWAL
n-1
0 1 2 3 4 5 6 7 8 9
S[ ]
-1
Top X
Top
19
Algoritma dasar
un u
untuk
PUSH
20
n-1
0 1 2 3 4 5 6 7 8 9
S[ ] 25 12 17 10
Top
3
Top X
Top
T
Top X
S[ ] 25 12 17 10 15
d. p
X = S[Top];
Top = Top + 1;
Top 4 15
Top
p X ?
23
A = B
B; Yang dii
Y diisi,
i variabel
i b l A ?
atau variabel B
Sebelum : 25 17
A B
A = B
B;
Sesudah
d h : ?
A B
24
A = B
B; Y
Yang dii
diisii adalah
d l h : variabel
i b l A
Sebelum : 25 17
A B
A = B
B;
Sesudah
d h : 17 17
A B
25
Untuk
U t k mengisi
i i elemen
l A[3]
0 1 2 3 4 5 Pilih instruksi yang benar :
A 17
a. A[3] = X;
b. X = A[3];
17
X
26
Sebelum nilai X diPUSH Pilih algoritma
g yang
y g benar
Ke Stack n-1 untuk PUSH
0 1 2 3 4 5 6 7 8 9
S[[ ] 25 12 17 10 a. S[Top] = X;
T p = Top
Top T p + 1;
Top 3 15
b. Top = Top + 1;
Top X S[T ] = X;
S[Top] X
S[ ] 25 12 17 10 15
d. p
X = S[Top];
Top = Top + 1;
Top 4 15
Top
p X ?
27
Sebelum nilai X diPUSH Pilih algoritma
g yang
y g benar
Ke Stack n-1 untuk PUSH
0 1 2 3 4 5 6 7 8 9
S[[ ] 25 12 17 10 a. S[Top] = X;
T p = Top
Top T p + 1;
Top 3 15
b. Top = Top + 1;
Top X S[T ] = X;
S[Top] X
S[ ] 25 12 17 10 15
d. p
X = S[Top];
Top = Top + 1;
Top 4 15
Top
p X
28
Sebelum nilai X diPUSH
Ke Stack n-1
0 1 2 3 4 5 6 7 8 9
Untuk PUSH
Algoritma yang benar
S[[ ] 25 12 17 10
S[ ] 25 12 17 10 15
Top 4 15
Top
p X
29
Algoritma PUSH yang benar : Top = Top + 1;
S[Top] = X;
Sebelum : n-1
0 1 2 3 4 5 6 7 8 9
25
5 12 17
7 10
0 3 15
S[ ]
Top X
Top
n-1
0 1 2 3 4 5 6 7 8 9
Dengan : Top = Top + 1;
S[ ] 25 12 17 10 4 15
Top X
Top
S
Sesudah
d h : n-1
Dengan : S[Top] = X;
0 1 2 3 4 5 6 7 8 9
S[ ] 25 12 17 10 15 4 15
Top X
Top 30
Algoritma PUSH yang SALAH : S[Top] = X;
Top = Top + 1;
Sebelum : n-1
0 1 2 3 4 5 6 7 8 9
25
5 12 17
7 10
0 3 15
S[ ]
Top X
Top
n-1
0 1 2 3 4 5 6 7 8 9 Dengan : S[Top] = X;
S[ ] 25 12 17 15 3 15
Top X
Top
S
Sesudah
d h : n-1
Dengan : Top = Top + 1;
0 1 2 3 4 5 6 7 8 9
S[ ] 25 12 17 15 4 15
Top X
Top 31
Algoritma
g dasar untuk PUSH
Top = Top + 1;
S[Top] = X;
atau :
Top+= 1;
S[Top] = X;
atau : Top++;
S[Top] = X;
atau : S[++Top]
S[ Top] = X;
32
Algoritma dasar
un u
untuk
POP
33
n-1
0 1 2 3 4 5 6 7 8 9
S[ ] 25 12 17 10
Top
3
Top X
Top
3
Top X
Top 3
b. Top = Top - 1;
Top X X = S[Top];
S[T ]
S[ ] 25 12 17 d. S[Top] = X;
T = Top
Top T - 1;1
Top 2 10
Top
p X
?
36
Untuk POP,
S b l
Sebelum POP n-1 Pilih algoritma
l ritm yang
n bbenar
n r
0 1 2 3 4 5 6 7 8 9
a. X = S[Top];
S[[ ] 25 12 17 10
Top = Top - 1;
Top 3
b. Top = Top - 1;
Top X X = S[Top];
S[T ]
S[ ] 25 12 17 d. S[Top] = X;
T = Top
Top T - 1;1
Top 2 10
Top
p X
37
S b l
Sebelum POP n-1
0 1 2 3 4 5 6 7 8 9
Untuk POP
Algoritma yang benar
S[[ ] 25 12 17 10
Top 3 X = S[Top];
X
p = Top
Top p - 1;
Top
S[ ] 25 12 17
Top 2 10
Top
p X
38
Sebelum POP n-1
0 1 2 3 4 5 6 7 8 9 Pertanyaan :
25 12 17 10 S t l h 10 disimpan
Setelah di i di X
S[ ]
apakah nilai 10
Top
p 3 masih ada dalam S[3] ?
Top X
Isi X n-1 Jawab :
0 1 2 3 4 5 6 7 8 9
S[ ] 25 12 17 10
Pertanyaan :
3 10
Top Setelah Top dipindahkan
Top X menunjuk S[2]
Setelah POP n-1 apakah nilai 10
0 1 2 3 4 5 6 7 8 9 m ih ada
masih d ddalam
l m S[3] ?
S[ ] 25 12 17
Jawab :
Top 2 10
X
39
Top
Sebelum POP n-1
0 1 2 3 4 5 6 7 8 9 Pertanyaan :
25 12 17 10 S t l h 10 disimpan
Setelah di i di X
S[ ]
apakah nilai 10
Top
p 3 masih ada dalam S[3] ?
Top X
Isi X n-1 Jawab : masih ada
0 1 2 3 4 5 6 7 8 9
S[ ] 25 12 17 10
Pertanyaan :
3 10
Top Setelah Top dipindahkan
Top X menunjuk S[2]
Setelah POP n-1 apakah nilai 10
0 1 2 3 4 5 6 7 8 9 m ih ada
masih d ddalam
l m S[3] ?
S[ ] 25 12 17
Jawab : masih ada
tapi untuk keperluan
Top 2 10 ilustrasi, nilainya dihapus
X
40
Top
Algoritma POP yang benar : X = S[Top];
Sebelum POP n-1
n Top
p = Top
p - 1;
0 1 2 3 4 5 6 7 8 9
S[ ] 25 12 17 10 3
Top X
Top
Kita Ulangi
41
Algoritma POP yang benar : X = S[Top];
Sebelum POP n-1
n Top
p = Top
p - 1;
0 1 2 3 4 5 6 7 8 9
S[ ] 25 12 17 10 3
Top X
Top
n-1 Dengan : X=S[Top];
0 1 2 3 4 5 6 7 8 9
S[ ] 25 12 17 10 3 10
Top
p X
T
Top
42
Algoritma POP yang benar : X = S[Top];
Sebelum POP n-1
n Top
p = Top
p - 1;
0 1 2 3 4 5 6 7 8 9
S[ ] 25 12 17 10 3
Top X
Top
n-1 Dengan : X=S[Top];
0 1 2 3 4 5 6 7 8 9
S[ ] 25 12 17 10 3 10
Top
p X
T
Top
S[ ] 25 12 17 2 10
Top
op X
Top
43
Algoritma
g dasar untuk POP
X = S[Top];
Top = Top - 1;
atau : X = S[Top];
[ p]
Top-=1;
atau : X = S[Top];
Top--;
atau : X = S[Top--];
44
Algoritma POP yang SALAH : Top = Top - 1;
X = S[Top];
Sebelum POP
S[ ] 25 12 17 10 3
Top X
Top
n-1 Dengan : Top = Top -1;
0 1 2 3 4 5 6 7 8 9
S[ ] 25 12 17 10 2
Top
p X
T
Top
S[ ] 25 12 10 2 17
Top
op X
Top
45
b) Proses PUSH
void POP(void)
{
X = S[Top];
Top = Top - 1;
}
46
#include<stdio.h> void AWAL(void)
void AWAL (void); {
void PUSH(void); Top = -1;
void POP(void); }
define n 10
int S[n]; void PUSH (void)
int Top, X; { Top = Top + 1;
S[top] = X;
void main( ) }
{ AWAL( );
- void POP (void)
- { X = S[top];
- Top = Top - 1;
scanf(“%i”,
f(“%i” &X)
&X); }
PUSH();
-
-
-
Semua
S m variabel
i b l b
bersifat
if t
POP( ); GLOBAL
printf(“%i”, X);
-
-
} 47
Ilustrasi Stack.
n-1
0 1 2 3 4 5 6 7 8 9
S[ ] 25 12 17 10
Top 3
Top X
Diilustrasikan sebagai
g berikut :
n-1
0 1 2 3 4 5 6 7 8 9
S[ ] X X X X
Top
48
1.2.4 Kondisi Stack.
a. KOSONG
b. PENUH
c. BISA DIISI
d. ADA ISINYA
49
Kondisi Stack.
a KOSONG
a.
b. PENUH
ya
lawanny
lawannya
a
c. BISA DIISI
d. ADA ISINYA
50
Kondisi Stack.
n-1
n Kondisi Stack :
0 1 2 3 4 5 6 7 8 9 a. KOSONG
1
b. PENUH
d. ADA ISINYA
n-1
0 1 2 3 4 5 6 7 8 9
2 X X X X
Top
n-1
0 1 2 3 4 5 6 7 8 9
3 X X X X X X X X X X
Top 51
Kondisi Stack.
n-1
n Kondis Stack :
0 1 2 3 4 5 6 7 8 9
1 a. KOSONG
G b :
Gambar ?
Top
b. PENUH
n-1 Gambar : ?
0 1 2 3 4 5 6 7 8 9
2 X X X X
c. BISA DIISI
Gambar : ?
Top
Top 52
Kondisi Stack.
n-1
n Kondis Stack :
0 1 2 3 4 5 6 7 8 9
1 a. KOSONG
Gambar : 1
Top
b. PENUH
n-1 Gambar : ?
0 1 2 3 4 5 6 7 8 9
2 X X X X
c. BISA DIISI
Gambar : ?
Top
Top 53
Kondisi Stack.
n-1
n Kondis Stack :
0 1 2 3 4 5 6 7 8 9
1 a. KOSONG
Gambar : 1
Top
b. PENUH
n-1 Gambar : 3
0 1 2 3 4 5 6 7 8 9
2 X X X X
c. BISA DIISI
Gambar : ?
Top
Top 54
Kondisi Stack.
n-1
n Kondis Stack :
0 1 2 3 4 5 6 7 8 9
1 a. KOSONG
Gambar : 1
Top
b. PENUH
n-1 Gambar : 3
0 1 2 3 4 5 6 7 8 9
2 X X X X
c. BISA DIISI
Gambar : 1 2
Top
Top 55
Kondisi Stack.
n-1
n Kondis Stack :
0 1 2 3 4 5 6 7 8 9
1 a. KOSONG
Gambar : 1
Top
b. PENUH
n-1 Gambar : 3
0 1 2 3 4 5 6 7 8 9
2 X X X X
c. BISA DIISI
Gambar : 1 2
Top
Top 56
Kondisi Stack.
n-1
n Kondis Stack :
0 1 2 3 4 5 6 7 8 9
cirinya
1
a. KOSONG : ?
Top
1
n-1
0 1 2 3 4 5 6 7 8 9 b. PENUH : ?
2 X X X X 3
Top
57
Kondisi Stack.
n-1
n Kondis Stack :
0 1 2 3 4 5 6 7 8 9
cirinya
1
a. KOSONG : Top = -1
Top
1
n-1
0 1 2 3 4 5 6 7 8 9 b. PENUH : ?
2 X X X X 3
Top
58
Kondisi Stack.
n-1
n Kondis Stack :
0 1 2 3 4 5 6 7 8 9
cirinya
1
a. KOSONG : Top = -1
Top
1
n-1
0 1 2 3 4 5 6 7 8 9 b. PENUH : Top = n-1
2 X X X X 3
Top
59
Kondisi Stack.
n-1
n Kondis Stack :
0 1 2 3 4 5 6 7 8 9
cirinya
1
a. KOSONG : Top = -1
Top
1
n-1
0 1 2 3 4 5 6 7 8 9 b. PENUH : Top = n-1
2 X X X X 3
Top
60
Kondisi Stack.
n-1
n Kondis Stack :
0 1 2 3 4 5 6 7 8 9
cirinya
1
a. KOSONG : Top = -1
Top
1
n-1
0 1 2 3 4 5 6 7 8 9 b. PENUH : Top = n-1
2 X X X X 3
Top
61
Kondisi Stack.
n-1
n 1
0 1 2 3 4 5 6 7 8 9
X X X X
Top
a. KOSONG Top = -1
1
62
1.2.4 Kondisi Stack.
c i r i
Kondisi Stack Ilustrasi gambar
(posisi Top)
n-1
0 1 2 3 4 5 6 7 8 9
1
n-1
0 1 2 3 4 5 6 7 8 9
Top
2 X X X X
Top n-1
0 1 2 3 4 5 6 7 8 9
3 X X X X X X X X X X
Top 63
1.2.5
Algoritma PUSH dan POP yang lengkap.
64
a. Algoritma yang lengkap untuk proses PUSH
n-1
0 1 2 3 4 5 6 7 8 9
Bila ada instruksi PUSH
X X X X maka akan d isi di elemen
nomor : ?
Top
65
a. Algoritma yang lengkap untuk proses PUSH
n-1
0 1 2 3 4 5 6 7 8 9
Bila ada instruksi PUSH
X X X X maka akan d isi di elemen
nomor : ?
Top
n-1
0 1 2 3 4 5 6 7 8 9 Bila ada instruksi PUSH
X X X X maka akan d isi di elemen
nomor : 4
Top
66
a. Algoritma yang lengkap untuk proses PUSH
n-1
0 1 2 3 4 5 6 7 8 9
Bila ada instruksi PUSH
X X X X maka akan diisi di elemen
nomor : 4
Top
n-1
0 1 2 3 4 5 6 7 8 9
Dalam kondisi PENUH
X X X X X X X X X X Bolehkah melakukan PUSH ?
Top Jawab : ?
67
a. Algoritma yang lengkap untuk proses PUSH
n-1
0 1 2 3 4 5 6 7 8 9
Bila ada instruksi PUSH
X X X X maka akan d isi di elemen
nomor : 4
Top
n-1
0 1 2 3 4 5 6 7 8 9
Dalam kondisi PENUH
X X X X X X X X X X Bolehkah melakukan PUSH ?
68
a. Algoritma yang lengkap untuk proses PUSH
Ilustrasi Stack
n-1
0 1 2 3 4 5 6 7 8 9
X X X X
Top
p
a. apakah KOSONG
b. apakah PENUH ?
c. apakah BISA DIISI
d apakah
d. k h ADA ISINYA
69
a. Algoritma yang lengkap untuk proses PUSH
Ilustrasi Stack
n-1
0 1 2 3 4 5 6 7 8 9
X X X X
Top
sebaliknya
b lk (else)
( l ) jangan PUSH
70
a. Algoritma yang lengkap untuk proses PUSH
void PUSH(void)
{ if ( BISA DIISI )
{ Top
p = Top
p + 1;
;
S[Top] = X;
}
else
printf( “Stack Penuh”);
}
71
a. Algoritma yang lengkap untuk proses PUSH
void PUSH(void)
Bila BISA DIISI
{ if ( Top < n-1 )
lakukan PUSH
{ Top
p = Top
p + 1;
;
S[Top] = X;
}
else
printf( “Stack Penuh”);
}
void POP(void)
{ Bila ADA ISINYA
if (Top > -1 )
{
X = S[Top]; lakukan POP
Top = Top-1;
}
else
printf(“Stack
printf( Stack Kosong
Kosong”);
);
}
atau : Algoritma yang lengkap untuk proses POP dengan ‘logika terbalik’
void POP(void)
{
if ( Top == -1 ) Bila KOSONG
printf(“Stack
printf( Stack Kosong
Kosong”);
); jangan POP
else
{
X = S[Top]; else
Top = Top - 1; lakukan POP
}
} 73
1.2.6 Contoh Soal PUSH dan POP .
74
1.3 Aplikasi Stack.
A + B * ( C - D / ( E + F ) SALAH
INFIX POSTFIX
A + B + C * D A B + C D * +
A + (B + C) * D A B C + D * +
75
1.4 Pointer sebagai penunjuk Stack.
Top BatasAtas
Dasar
define n 11
-
int S[n], *Top, *BatasAtas, *Dasar
-
-
Dasar = &S[-1];
p = &S[-1];
Top [ ];
BatasAtas = &S[n-1];
76
n
0 1 2 3 4 5 6 7 8 9 10
Top BatasAtas
Dasar
a. Algoritma untuk PUSH
if(Top < BatasAtas)
Top++;
*Top = X;
else
printf(“Stack Penuh);
a. Menyiapkan Stack.
#define MAXSTACK 10
b
b. Initialisasi
Initialisasi.
void Intitialize(StackType *P )
{ P->Top = -1; }
78
1.5 Representasi Stack menggunakan structure.
Perhatikan contoh berikut ini :
c. Proses PUSH.
void
d P
PUSH(ItemType
H( item, StackType
k *P)
{ if(P->Top >= MAXSTACK-1)
printf(“Stack Penuh”);
else
P->entry[++P->Top] = item;
d. Proses POP.
void POP(ItemType
yp *Q, StackTypeyp *P)
{ if(P->Top <= -1)
printf(“Stack Kosong”);
else
*Q = P->S[P->Top--];
P S[P T ]
} 79
1.6 Soal Latihan Mandiri. 0 1 2 3 4 5 6 n-1
X X X X
Top
Soal-I.. Untuk
Un u Stack yang
y ng diilustrasikan
u n p
pada Gambar
G m diatas :
1. Sebutkan ciri bahwa Stack :
a. Kosong
b. Penuh 2. Tulis algoritma dasar untuk:
c. Bisa diisi a. PUSH
d. Ada isinya b. POP
g
3. Tulis algoritma yang
y g lengkap
g p untuk: a. PUSH
b. POP
4. Tulis program (penggalan program) untuk menginput data melalui
keyboard
y satu p
persatu dan m mem m Push data tersebut ke Stack
sampai Stack penuh tak bisa diisi lagi.
81
6
6. Bila Stack berisi bilangan
g integer,
g , maka susun
algoritma untuk menghitung dan mencetak total
isi Stack tanpa menghapus isi Stack.
82
6
6. Bila Stack berisi bilangan
g integer,
g , maka susun
algoritma untuk menghitung dan mencetak total
isi Stack tanpa menghapus isi Stack.
83
6
6. Bila Stack berisi bilangan
g integer,
g , maka susun
algoritma untuk menghitung dan mencetak total
isi Stack tanpa menghapus isi Stack.
n-1
0 1 2 3 4 5 6 7 8 9
S[ ] 25 12 17 10
Top 3 64
T
Top X Total
84
7. Dianggap tempat yang tersedia mesih lebih dari 10
t
tempat.
t Tulis
T li program (penggalan
( l program)) untuk
t k
menginput sebanyak 10 buah data melalui keyboard
satu persatu dan mem Push data tersebut ke Stack.
85
7. Dianggap tempat yang tersedia mesih lebih dari 10
t
tempat.
t Tulis
T li program (penggalan
( l program)) untuk
t k
menginput sebanyak 10 buah data melalui keyboard
satu persatu dan mem Push data tersebut ke Stack.
86
7. Dianggap tempat yang tersedia mesih lebih dari 10
t
tempat.
t Tulis
T li program (penggalan
( l program)) untuk
t k
menginput sebanyak 10 buah data melalui keyboard
satu persatu dan mem Push data tersebut ke Stack.
0 1 2 3 4 5 6 n-1
X X X X
Top
3
Top X
87
8. Dipastikan stack terisi lebih dari 10 elemen. Tulis
program (penggalan program) untuk mengeluarkan
(POP) isi stack sebanyak 10 elemen, satu per satu
dan mencetaknyay ke layar.
y
88
8. Dipastikan stack terisi lebih dari 10 elemen. Tulis
program (penggalan program) untuk mengeluarkan
(POP) isi stack sebanyak 10 elemen, satu per satu
dan mencetaknyay ke layar.
y
89
8. Dipastikan stack terisi lebih dari 10 elemen. Tulis
program (penggalan program) untuk mengeluarkan
(POP) isi stack sebanyak 10 elemen, satu per satu
dan mencetaknyay ke layar.
y
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 n-1
X X X X X X X X X X X X X X X
Top
14
Top X
90
9. Tulis program (penggalan program) untuk menginput melalui keyboard
satu persatu dan mem Push data tersebut ke Stack. Bila tempat yang
tersedia masih cukup untuk menampung 10 data baru,
baru maka data yang
diinput dan di push sebanyak 10 buah data. Tapi bila tempat yang
tersedia kurang dari 10 tempat, maka cukup menginput dan mem Push
sebanyak tempat yang tersedia, sampai stack penuh.
91
9. Tulis program (penggalan program) untuk menginput
melalui keyboard satu persatu dan mem Push data
tersebut ke Stack. Bila tempat yang tersedia masih
cukup untuk menampung 10 data baru, maka data
yang diinput dan di push sebanyak 10 buah data.
data Tapi
bila tempat yang tersedia kurang dari 10 tempat,
maka cukup menginput dan mem Push sebanyak
tempat yang tersedia, sampai stack penuh.
92
9. Tulis program (penggalan program) untuk menginput
melalui keyboard satu persatu dan mem Push data
tersebut ke Stack. Bila tempat yang tersedia masih
cukup untuk menampung 10 data baru, maka data
yang diinput dan di push sebanyak 10 buah data.
data Tapi
bila tempat yang tersedia kurang dari 10 tempat,
maka cukup menginput dan mem Push sebanyak
tempat yang tersedia, sampai stack penuh.
93
9. Tulis program (penggalan program) untuk menginput
melalui keyboard satu persatu dan mem Push data
tersebut ke Stack. Bila tempat yang tersedia masih
cukup untuk menampung 10 data baru, maka data
yang diinput dan di push sebanyak 10 buah data.
data Tapi
bila tempat yang tersedia kurang dari 10 tempat,
maka cukup menginput dan mem Push sebanyak
tempat yang tersedia, sampai stack penuh.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 n-11
n
X X X X X X X X X X X X X X X
Top
14
Top
p X
94
9. Tulis program (penggalan program) untuk menginput
melalui keyboard satu persatu dan mem Push data
tersebut ke Stack. Bila tempat yang tersedia masih
cukup untuk menampung 10 data baru, maka data
yang diinput dan di push sebanyak 10 buah data.
data Tapi
bila tempat yang tersedia kurang dari 10 tempat,
maka cukup menginput dan mem Push sebanyak
tempat yang tersedia, sampai stack penuh.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 n-11
n
X X X X X X X X
Top
7
Top
p X
95
10.Tulis program (penggalan program) untuk
mengeluarkan (POP) isi stack satu persatu dan
mencetaknya ke layar. Bila stack berisi 10 elemen
atau lebih dari 10 elemen, maka keluarkan dan cetak
sebanyak 10 elemen.
elemen Tapi bila isi stack kurang dari
10 elemen, maka keluarkan semua isi stack, sampai
stack menjadi kosong.
96
10.Tulis program (penggalan program) untuk
mengeluarkan (POP) isi stack satu persatu dan
mencetaknya ke layar. Bila stack berisi 10 elemen
atau lebih dari 10 elemen, maka keluarkan dan cetak
sebanyak 10 elemen.
elemen Tapi bila isi stack kurang dari
10 elemen, maka keluarkan semua isi stack, sampai
stack menjadi kosong.
97
10.Tulis program (penggalan program) untuk
mengeluarkan (POP) isi stack satu persatu dan
mencetaknya ke layar. Bila stack berisi 10 elemen
atau lebih dari 10 elemen, maka keluarkan dan cetak
sebanyak 10 elemen.
elemen Tapi bila isi stack kurang dari
10 elemen, maka keluarkan semua isi stack, sampai
stack menjadi kosong.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 n-11
n
X X X X X X X X
Top
7
Top
p X
98
10.Tulis program (penggalan program) untuk
mengeluarkan (POP) isi stack satu persatu dan
mencetaknya ke layar. Bila stack berisi 10 elemen
atau lebih dari 10 elemen, maka keluarkan dan cetak
sebanyak 10 elemen.
elemen Tapi bila isi stack kurang dari
10 elemen, maka keluarkan semua isi stack, sampai
stack menjadi kosong.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 n-11
n
X X X X X X X X X X X X X X X
Top
14
Top
p X
99
100
1 Sudah ada sebuah stack yang dibuat dengan
int S[n], dengan variabel Top bertipe int
sebagai penunjuk posisi isi stack yang ‘paling
atas’ Tidak diketahui apakah stack tersebut
atas’.
dalam keadaan kosong, penuh, bisa diisi, atau
ada isinya.
y
Tulis program (penggalan program) untuk
menginput data melalui keyboard satu persatu
d
dan mem Push
P h data d t tersebut
t b t ke
k Stack
St k (bila
(bil
stack tersebut bisa diisi) sampai Stack penuh
tak bisa diisi lagi.
101
2 Sudah ada sebuah stack yang dibuat dengan
int S[n], dengan variabel Top bertipe int
sebagai penunjuk posisi isi stack yang ‘paling
atas’.. Tidak diketahui apakah stack tersebut
atas
dalam keadaan kosong, penuh, bisa diisi, atau
ada isinya.
Tulis program (penggalan program) untuk
mengeluarkan isi stack tersebut (bila ada
isinya), dan mencetaknya ke layar monitor, satu
persatu sampai stack tersebut kosong.
102
3 Sudah ada dua buah
stack S1,
S1 dan S2,
S2 yang 7 7
Top1 6 17 6
dibuat dengan int S1[n] 5 5 5
dan S2[n]. Stack S1 sudah 4 33 4
ada isinya, dan stack S2, 3 25 3
12
belum ada isinya, yang 2
15
2
1 1
diilustrasikan dengan 0 27 0
gambar disebelah kanan -1 S1 Top2 -1 S2
ini.