01 single stack
TRANSCRIPT
![Page 1: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/1.jpg)
1
Fakultas Teknologi Informasi
Universitas Budi Luhur
Kurikulum
![Page 2: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/2.jpg)
2
U m u m
![Page 3: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/3.jpg)
3
Buku Literatur
![Page 4: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/4.jpg)
4
Buku Literatur
![Page 5: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/5.jpg)
5
Buku Literatur
![Page 6: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/6.jpg)
6
materi
1. Stack
2. Queue
3. Linked List
4. Tree
5. Graph
6. Search & Sort
![Page 7: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/7.jpg)
7
. Stack
. Queue
. Tree
. Graph
Pokok Pembahasan
![Page 8: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/8.jpg)
8
Stack
Queue
Tree
Graph
linear
nonlinear
Array
Linked-List
(statis)
(dinamis)
struktur Peng-alokasi-anmemory
Satu dimensi
Dua dimensi
Linear
NonLinear
StackQueueTree
Graph
StackQueue
TreeGraph
![Page 9: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/9.jpg)
9
6.3 & 7.3NESTED LOOP
STACK
![Page 10: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/10.jpg)
10
STACK( TUMPUKAN )
![Page 11: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/11.jpg)
11
A stack is an ordered collection of items into which new items may be inserted and from which items may be deleted at one end, called the top of the stack.
( Yedidyah L, Moshe J. A., and Aaron M. Tenenbaum; Data Structures Using C and C++)
insert
delete
7
6
5
4
3
2
1
![Page 12: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/12.jpg)
12
Buku-4
Buku-3
Buku-2
Buku-1
4
3
2
1
1
2
3
4
Top
Meja
NomorUrut Masuk(PUSH)
Nomor UrutKeluar (POP)
1. Single Stack. Stack Tunggal, satu stack dalam satu collection
1.1 Ilustrasi Single Stack.
![Page 13: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/13.jpg)
13
Dalam struktur STACK, digunakan
istilah :
- PUSH untuk : Simpan, atau Masuk,
atau
Insert, atau Tulis.
- POP untuk : Ambil, atau Keluar, atau
Delete, atau Baca, atau
HapusPrinsip atau Konsep prosesnya disebut :
L I F O ( Last In First Out )
![Page 14: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/14.jpg)
14
1.2 Representasi Single Stack menggunakan Array Satu Dimensi.
0 1 2 3 4 5 6 7 8 9
misal n = 10n-1
Top
Top X
3
25 12 17 10 S[ ]
1.2.1 Ilustrasi Single Stack menggunakan Array Satu Dimensi
#define n 10----int S[n];int Top, X;
misal dibuat dengan :
![Page 15: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/15.jpg)
15
0 1 2 3 4 5 6 7 8 9
n-1
Top
Top X
3
25 12 17 10 S[ ]
Pertanyaan : dalam keadaan seperti sekarang
Kalau ada perintah PUSH ( Isi, Masuk, Simpan)
maka akan diisi di elemen nomor : ?dan Top akan menunjuk elemen nomor : ?
PUSHPOP
![Page 16: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/16.jpg)
16
0 1 2 3 4 5 6 7 8 9
n-1
Top
Top X
3
25 12 17 10 S[ ]
Pertanyaan : dalam keadaan seperti sekarang
Kalau ada perintah POP ( Keluar, Ambil)
maka akan diambil isi elemen nomor : ?dan Top akan menunjuk elemen nomor : ?
PUSHPOP
![Page 17: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/17.jpg)
17
Ilustrasi Stack.
0 1 2 3 4 5 6 7 8 9
n-1
Top
25 12 17 10 S[ ]
Top
X X X X S[ ]
Top X
3
Diilustrasikan sebagai berikut :
0 1 2 3 4 5 6 7 8 9
n-1
![Page 18: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/18.jpg)
18
LIFO (Last In First Out)
a. AWAL (Inisialisasi)b. PUSH (Insert, Masuk, Simpan, Tulis)c. POP (Delete, Keluar, Ambil , Baca / Hapus)
1.2.2 Prinsip / Konsep Proses pada Stack
1.2.3 Macam Proses pada Stack
![Page 19: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/19.jpg)
19
void AWAL(void){ Top = -1;}
a) Proses AWAL
Catatan :
Untuk memudahkan pembuatan program, maka array untuk Stack dan beberapa variabel yang terkait dibuat bersifat Glabal
0 1 2 3 4 5 6 7 8 9
n-1
Top Top X
-1
S[ ]
![Page 20: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/20.jpg)
20
Algoritma dasaruntuk
PUSH
![Page 21: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/21.jpg)
21
Pertanyaan : dalam keadaan seperti sekarang
Kalau ada perintah PUSH (Isi, Masuk, Simpan)
maka akan diisi di elemen nomor : ?dan Top akan menunjuk elemen nomor : ?
Top
Top X
3
25 12 17 10 S[ ]
0 1 2 3 4 5 6 7 8 9
n-1
![Page 22: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/22.jpg)
22
Pertanyaan : dalam keadaan seperti sekarang
Kalau ada perintah PUSH (Isi, Masuk, Simpan)
maka akan diisi di elemen nomor : 4dan Top akan menunjuk elemen nomor : 4
Top
Top X
3
25 12 17 10 S[ ]
0 1 2 3 4 5 6 7 8 9
n-1
![Page 23: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/23.jpg)
23
Pilih algoritma yang benaruntuk PUSH
a. Top = Top + 1;S[Top] = X;
b. S[Top] = X;Top = Top + 1;
c. Top = Top + 1;X = S[Top];
d. X = S[Top];Top = Top + 1;
?
Top X
3 15Top
25 12 17 10 S[ ]
Top X
4 15Top
25 12 17 10 15 S[ ]
0 1 2 3 4 5 6 7 8 9
n-1
0 1 2 3 4 5 6 7 8 9
n-1Setelah nilai X diPUSHKe Stack
Sebelum nilai X diPUSHKe Stack
![Page 24: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/24.jpg)
24
A = B; Yang diisi, variabel Aatau variabel B
?
25
A
17
B
A = B;
A B
Sebelum :
Sesudah : ?
![Page 25: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/25.jpg)
25
A = B; Yang diisi adalah : variabel A
25
A
17
B
A = B;
17
A
17
B
Sebelum :
Sesudah :
![Page 26: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/26.jpg)
26
17A
0 1 2 3 4 5
17
Untuk mengisi elemen A[3]Pilih instruksi yang benar :
a.
b.
A[3] = X;
X
X = A[3];
![Page 27: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/27.jpg)
27
Pilih algoritma yang benaruntuk PUSH
a. Top = Top + 1;S[Top] = X;
b. S[Top] = X;Top = Top + 1;
c. Top = Top + 1;X = S[Top];
d. X = S[Top];Top = Top + 1;
?
Top X
3 15Top
25 12 17 10 S[ ]
Top X
4 15Top
25 12 17 10 15 S[ ]
0 1 2 3 4 5 6 7 8 9
n-1
0 1 2 3 4 5 6 7 8 9
n-1Setelah nilai X diPUSHKe Stack
Sebelum nilai X diPUSHKe Stack
![Page 28: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/28.jpg)
28
Pilih algoritma yang benaruntuk PUSH
a. Top = Top + 1;S[Top] = X;
b. S[Top] = X;Top = Top + 1;
c. Top = Top + 1;X = S[Top];
d. X = S[Top];Top = Top + 1;
Top X
3 15Top
25 12 17 10 S[ ]
Top X
4 15Top
25 12 17 10 15 S[ ]
0 1 2 3 4 5 6 7 8 9
n-1
0 1 2 3 4 5 6 7 8 9
n-1Setelah nilai X diPUSHKe Stack
Sebelum nilai X diPUSHKe Stack
![Page 29: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/29.jpg)
29
Untuk PUSH Algoritma yang benar
Top = Top + 1;S[Top] = X;
Top X
3 15Top
25 12 17 10 S[ ]
Top X
4 15Top
25 12 17 10 15 S[ ]
0 1 2 3 4 5 6 7 8 9
n-1
0 1 2 3 4 5 6 7 8 9
n-1Setelah nilai X diPUSHKe Stack
Sebelum nilai X diPUSHKe Stack
![Page 30: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/30.jpg)
30
Top X
3 15
Top
25 12 17 10 S[ ]
Top X
4 15
Top
25 12 17 10 15 S[ ]
Top
25 12 17 10 S[ ]
Top X
4 15
Dengan : Top = Top + 1;
Dengan : S[Top] = X;
Algoritma PUSH yang benar : Top = Top + 1; S[Top] = X;
Sebelum :
Sesudah :
0 1 2 3 4 5 6 7 8 9
n-1
0 1 2 3 4 5 6 7 8 9
n-1
0 1 2 3 4 5 6 7 8 9
n-1
![Page 31: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/31.jpg)
31
Algoritma PUSH yang SALAH : S[Top] = X;Top = Top + 1;
Top X
3 15
Top
25 12 17 10 S[ ]
Top X
4 15
Top
25 12 17 15 S[ ]
Top
25 12 17 15 S[ ]
Top X
3 15
Dengan : Top = Top + 1;
Dengan : S[Top] = X;
Sebelum :
Sesudah :
0 1 2 3 4 5 6 7 8 9
n-1
0 1 2 3 4 5 6 7 8 9
n-1
0 1 2 3 4 5 6 7 8 9
n-1
![Page 32: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/32.jpg)
32
Algoritma dasar untuk PUSH
Top = Top + 1; S[Top] = X;
Top+= 1; S[Top] = X;
Top++; S[Top] = X;
S[++Top] = X;
atau :
atau :
atau :
![Page 33: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/33.jpg)
33
Algoritma dasaruntuk
POP
![Page 34: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/34.jpg)
34
Pertanyaan : dalam keadaan seperti sekarang
Kalau ada perintah POP ( Keluar, Ambil)
maka akan diambil isi elemen nomor : ?dan setelah itu Top akan menunjuk elemen nomor
: ?
Top
Top X
3
25 12 17 10 S[ ]
0 1 2 3 4 5 6 7 8 9
n-1
![Page 35: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/35.jpg)
35
Pertanyaan : dalam keadaan seperti sekarang
Kalau ada perintah POP ( Keluar, Ambil)
maka akan diambil isi elemen nomor : 3dan setelah itu Top akan menunjuk elemen nomor
: 2
Top
Top X
3
25 12 17 10 S[ ]
0 1 2 3 4 5 6 7 8 9
n-1
![Page 36: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/36.jpg)
36
Untuk POP,Pilih algoritma yang benar
a.
Top = Top - 1;S[Top] = X;
b.
S[Top] = X;Top = Top - 1;
c.
Top = Top - 1;X = S[Top];
d.
X = S[Top];Top = Top - 1;
?
Top X
3Top
25 12 17 10 S[ ]
Top X
2 10Top
25 12 17 S[ ]
0 1 2 3 4 5 6 7 8 9
n-1
0 1 2 3 4 5 6 7 8 9
n-1Setelah POP
Sebelum POP
![Page 37: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/37.jpg)
37
Untuk POP,Pilih algoritma yang benar
a.
Top = Top - 1;S[Top] = X;
b.
S[Top] = X;Top = Top - 1;
c.
Top = Top - 1;X = S[Top];
d.
X = S[Top];Top = Top - 1;
Top X
3Top
25 12 17 10 S[ ]
Top X
2 10Top
25 12 17 S[ ]
0 1 2 3 4 5 6 7 8 9
n-1
0 1 2 3 4 5 6 7 8 9
n-1Setelah POP
Sebelum POP
![Page 38: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/38.jpg)
38
Untuk POP Algoritma yang benar
X = S[Top];Top = Top - 1;
Top X
3Top
25 12 17 10 S[ ]
Top X
2 10Top
25 12 17 S[ ]
0 1 2 3 4 5 6 7 8 9
n-1
0 1 2 3 4 5 6 7 8 9
n-1Setelah POP
Sebelum POP
![Page 39: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/39.jpg)
39
Pertanyaan :Setelah 10 disimpan di Xapakah nilai 10
masih ada dalam S[3] ?
Pertanyaan :Setelah Top dipindahkan menunjuk S[2] apakah nilai 10masih ada dalam S[3]
?
Jawab :
Jawab :
Top X
2 10Top
25 12 17 S[ ]
0 1 2 3 4 5 6 7 8 9
n-1Setelah POP
Top X
3Top
25 12 17 10 S[ ]
0 1 2 3 4 5 6 7 8 9
n-1Sebelum POP
3 10Top
25 12 17 10 S[ ]
0 1 2 3 4 5 6 7 8 9
n-1Isi X
Top X
![Page 40: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/40.jpg)
40
Pertanyaan :Setelah 10 disimpan di Xapakah nilai 10
masih ada dalam S[3] ?
Pertanyaan :Setelah Top dipindahkan menunjuk S[2] apakah nilai 10masih ada dalam S[3]
?
Jawab : masih ada
Jawab : masih adatapi untuk keperluan ilustrasi, nilainya dihapus
Top X
2 10Top
25 12 17 S[ ]
0 1 2 3 4 5 6 7 8 9
n-1Setelah POP
Top X
3Top
25 12 17 10 S[ ]
0 1 2 3 4 5 6 7 8 9
n-1Sebelum POP
3 10Top
25 12 17 10 S[ ]
0 1 2 3 4 5 6 7 8 9
n-1Isi X
Top X
![Page 41: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/41.jpg)
41
Algoritma POP yang benar : X = S[Top];Top = Top - 1;
Kita Ulangi
Top
25 12 17 10 S[ ]
0 1 2 3 4 5 6 7 8 9
n-1Sebelum POP
Top X
3
![Page 42: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/42.jpg)
42
Dengan : X=S[Top];
Top X
3
Algoritma POP yang benar : X = S[Top];Top = Top - 1;
Top
25 12 17 10 S[ ]
0 1 2 3 4 5 6 7 8 9
n-1Sebelum POP
Top
25 12 17 10 S[ ]
0 1 2 3 4 5 6 7 8 9
n-1
Top X
3 10
![Page 43: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/43.jpg)
43
Dengan : X=S[Top];
Top X
3
Algoritma POP yang benar : X = S[Top];Top = Top - 1;
Top
25 12 17 10 S[ ]
0 1 2 3 4 5 6 7 8 9
n-1Sebelum POP
Top
25 12 17 10 S[ ]
0 1 2 3 4 5 6 7 8 9
n-1
Top X
3 10
Dengan : Top = Top -1;
Top
25 12 17 S[ ]
0 1 2 3 4 5 6 7 8 9
n-1
Top X
2 10
![Page 44: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/44.jpg)
44
Algoritma dasar untuk POP
X = S[Top]; Top = Top - 1;
atau :
atau :
atau :
X = S[Top]; Top-=1;
X = S[Top]; Top--;
X = S[Top--];
![Page 45: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/45.jpg)
45
Algoritma POP yang SALAH : Top = Top - 1;X = S[Top];
Dengan : Top = Top -1;
Top X
3
Top
25 12 17 10 S[ ]
Sebelum POP
Top
25 12 17 10 S[ ]
0 1 2 3 4 5 6 7 8 9
n-1
Top X
2
Dengan : X = S[Top];
Top
25 12 10 S[ ]
0 1 2 3 4 5 6 7 8 9
n-1
Top X
2 17
![Page 46: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/46.jpg)
46
void PUSH( void){ Top = Top + 1; S[Top] = X;}
void POP(void){ X = S[Top]; Top = Top - 1;}
b) Proses PUSH
c) Proses POP
Catatan :
Semua variabel dibuatbersifat GLOBAL
![Page 47: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/47.jpg)
47
#include<stdio.h>void AWAL (void);void PUSH(void);void POP(void);define n 10int S[n];int Top, X;
void main( ){ AWAL( ); - - - scanf(“%i”, &X); PUSH(); - - - POP( ); printf(“%i”, X); - -}
void AWAL(void){ Top = -1;}
void PUSH (void){ Top = Top + 1; S[top] = X;}
void POP (void){ X = S[top]; Top = Top - 1;}
Semua variabel bersifatGLOBAL
![Page 48: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/48.jpg)
48
Ilustrasi Stack.
Diilustrasikan sebagai berikut :
Top X
3Top
25 12 17 10 S[ ]
0 1 2 3 4 5 6 7 8 9
n-1
Top
X X X X S[ ]
0 1 2 3 4 5 6 7 8 9
n-1
![Page 49: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/49.jpg)
49
1.2.4 Kondisi Stack.
a. KOSONG
b. PENUH
c. BISA DIISI
d. ADA ISINYA
![Page 50: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/50.jpg)
50
Kondisi Stack.
a. KOSONG
b. PENUH
c. BISA DIISI
d. ADA ISINYA
law
an
nya
law
an
nya
![Page 51: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/51.jpg)
51
Kondisi Stack.
Kondisi Stack :
a. KOSONG
b. PENUH
c. BISA DIISI
d. ADA ISINYA
Top
X X X X
Top
X X X X X X X X X X
0 1 2 3 4 5 6 7 8 9
n-1
Top
1
2
3
0 1 2 3 4 5 6 7 8 9
n-1
0 1 2 3 4 5 6 7 8 9
n-1
![Page 52: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/52.jpg)
52
Kondisi Stack.
Kondis Stack :
a. KOSONG
b. PENUH
c. BISA DIISI
d. ADA ISINYA
Gambar : ?
Gambar : ?
Gambar : ?
Gambar : ?
Top
X X X X
Top
X X X X X X X X X X
0 1 2 3 4 5 6 7 8 9
n-1
Top
1
2
3
0 1 2 3 4 5 6 7 8 9
n-1
0 1 2 3 4 5 6 7 8 9
n-1
![Page 53: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/53.jpg)
53
Kondisi Stack.
Kondis Stack :
a. KOSONG
b. PENUH
c. BISA DIISI
d. ADA ISINYA
Gambar :
Gambar : ?
Gambar : ?
Gambar : ?
1
Top
X X X X
Top
X X X X X X X X X X
0 1 2 3 4 5 6 7 8 9
n-1
Top
1
2
3
0 1 2 3 4 5 6 7 8 9
n-1
0 1 2 3 4 5 6 7 8 9
n-1
![Page 54: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/54.jpg)
54
Kondisi Stack.
Kondis Stack :
a. KOSONG
b. PENUH
c. BISA DIISI
d. ADA ISINYA
Gambar :
Gambar :
Gambar : ?
Gambar : ?
1
3
Top
X X X X
Top
X X X X X X X X X X
0 1 2 3 4 5 6 7 8 9
n-1
Top
1
2
3
0 1 2 3 4 5 6 7 8 9
n-1
0 1 2 3 4 5 6 7 8 9
n-1
![Page 55: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/55.jpg)
55
Kondisi Stack.
Kondis Stack :
a. KOSONG
b. PENUH
c. BISA DIISI
d. ADA ISINYA
Gambar :
Gambar :
Gambar :
Gambar : ?
1
3
1 2Top
X X X X
Top
X X X X X X X X X X
0 1 2 3 4 5 6 7 8 9
n-1
Top
1
2
3
0 1 2 3 4 5 6 7 8 9
n-1
0 1 2 3 4 5 6 7 8 9
n-1
![Page 56: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/56.jpg)
56
Kondisi Stack.
Kondis Stack :
a. KOSONG
b. PENUH
c. BISA DIISI
d. ADA ISINYA
Gambar :
Gambar :
Gambar :
Gambar :
1
3
1 2
2 3
Top
X X X X
Top
X X X X X X X X X X
0 1 2 3 4 5 6 7 8 9
n-1
Top
1
2
3
0 1 2 3 4 5 6 7 8 9
n-1
0 1 2 3 4 5 6 7 8 9
n-1
![Page 57: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/57.jpg)
57
Kondisi Stack.
Kondis Stack :
a. KOSONG : ?
b. PENUH : ?
c. BISA DIISI : ?
d. ADA ISINYA : ?
1
3
1 2
2 3
cirinya
Top
X X X X
Top
X X X X X X X X X X
0 1 2 3 4 5 6 7 8 9 n-1
Top
1
2
3
0 1 2 3 4 5 6 7 8 9 n-1
0 1 2 3 4 5 6 7 8 9 n-1
![Page 58: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/58.jpg)
58
Kondisi Stack.
Kondis Stack :
a. KOSONG : Top = -1
b. PENUH : ?
c. BISA DIISI : ?
d. ADA ISINYA : ?
1
3
1 2
2 3
cirinya
Top
X X X X
Top
X X X X X X X X X X
0 1 2 3 4 5 6 7 8 9 n-1
Top
1
2
3
0 1 2 3 4 5 6 7 8 9 n-1
0 1 2 3 4 5 6 7 8 9 n-1
![Page 59: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/59.jpg)
59
Kondisi Stack.
Kondis Stack :
a. KOSONG : Top = -1
b. PENUH : Top = n-1
c. BISA DIISI : ?
d. ADA ISINYA : ?
1
3
1 2
2 3
cirinya
Top
X X X X
Top
X X X X X X X X X X
0 1 2 3 4 5 6 7 8 9 n-1
Top
1
2
3
0 1 2 3 4 5 6 7 8 9 n-1
0 1 2 3 4 5 6 7 8 9 n-1
![Page 60: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/60.jpg)
60
Kondisi Stack.
Kondis Stack :
a. KOSONG : Top = -1
b. PENUH : Top = n-1
c. BISA DIISI : Top < n-1
d. ADA ISINYA : ?
1
3
1 2
2 3
cirinya
Top
X X X X
Top
X X X X X X X X X X
0 1 2 3 4 5 6 7 8 9 n-1
Top
1
2
3
0 1 2 3 4 5 6 7 8 9 n-1
0 1 2 3 4 5 6 7 8 9 n-1
![Page 61: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/61.jpg)
61
Kondisi Stack.
Kondis Stack :
a. KOSONG : Top = -1
b. PENUH : Top = n-1
c. BISA DIISI : Top < n-1
d. ADA ISINYA : Top > -1
1
3
1 2
2 3
cirinya
Top
X X X X
Top
X X X X X X X X X X
0 1 2 3 4 5 6 7 8 9 n-1
Top
1
2
3
0 1 2 3 4 5 6 7 8 9 n-1
0 1 2 3 4 5 6 7 8 9 n-1
![Page 62: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/62.jpg)
62
Kondisi Stack.
0 1 2 3 4 5 6 7 8 9
n-1
Top
X X X X
Kondis Stack :a. KOSONG
b. PENUH
c. BISA DIISI
d. ADA ISINYA
cirinya
Top = -1
Top = n-1
Top < n-1
Top > -1
![Page 63: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/63.jpg)
63
Kondisi Stack c i r i(posisi Top)
Ilustrasi gambar
a.
b.
c.
d.
KOSONG tak ada isinya
PENUH tak bisa diisi lagi
BISA DIISI (kebalikan dari PENUH)
ADA ISINYA (kebalikan dari KOSONG)
Top = -1
Top = n-1
Top < n-1
Top > -1
Gambar 1
Gambar 3
Gambar 1 dan 2
Gambar 2 dan 3
1.2.4 Kondisi Stack.
Top
X X X X
Top
X X X X X X X X X X
Top
1
2
3
0 1 2 3 4 5 6 7 8 9 n-1
0 1 2 3 4 5 6 7 8 9 n-1
0 1 2 3 4 5 6 7 8 9 n-1
![Page 64: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/64.jpg)
64
1.2.5 Algoritma PUSH dan POP yang lengkap.
![Page 65: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/65.jpg)
65
a. Algoritma yang lengkap untuk proses PUSH
Bila ada instruksi PUSHmaka akan d isi di elemen
nomor : ?Top
X X X X
0 1 2 3 4 5 6 7 8 9
n-1
![Page 66: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/66.jpg)
66
a. Algoritma yang lengkap untuk proses PUSH
Bila ada instruksi PUSHmaka akan d isi di elemen
nomor : ?
Bila ada instruksi PUSHmaka akan d isi di elemen
nomor : 4
0 1 2 3 4 5 6 7 8 9
n-1
Top
X X X X
Top
X X X X
0 1 2 3 4 5 6 7 8 9
n-1
![Page 67: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/67.jpg)
67
a. Algoritma yang lengkap untuk proses PUSH
Bila ada instruksi PUSHmaka akan diisi di elemen
nomor : 4
Dalam kondisi PENUHBolehkah melakukan PUSH ?
Jawab : ?
0 1 2 3 4 5 6 7 8 9
n-1
Top
X X X X
Top
X X X X X X X X X X
0 1 2 3 4 5 6 7 8 9
n-1
![Page 68: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/68.jpg)
68
a. Algoritma yang lengkap untuk proses PUSH
Bila ada instruksi PUSHmaka akan d isi di elemen
nomor : 4
Dalam kondisi PENUHBolehkah melakukan PUSH ?
Jawab : TIDAK BOLEH
0 1 2 3 4 5 6 7 8 9
n-1
Top
X X X X
Top
X X X X X X X X X X
0 1 2 3 4 5 6 7 8 9
n-1
![Page 69: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/69.jpg)
69
a. Algoritma yang lengkap untuk proses PUSH
Ilustrasi Stack
Bila Stack PENUH, maka Tidak Boleh melakukan PUSHsehingga, sebelum PUSH,perlu dioeriksa apakah Stack dalam keadaan :
a. apakah KOSONG
b. apakah PENUH
c. apakah BISA DIISI
d. apakah ADA ISINYA
?
0 1 2 3 4 5 6 7 8 9
n-1
Top
X X X X
![Page 70: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/70.jpg)
70
a. Algoritma yang lengkap untuk proses PUSH
Bila BISA DIISI
silahkan PUSH
sebaliknya (else)
Bila PENUH jangan PUSH
sebaliknya (else) silahkan PUSH
jangan PUSH
Ilustrasi Stack
0 1 2 3 4 5 6 7 8 9
n-1
Top
X X X X
![Page 71: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/71.jpg)
71
a. Algoritma yang lengkap untuk proses PUSH
void PUSH(void){ if ( BISA DIISI ) { Top = Top + 1; S[Top] = X; } else printf( “Stack Penuh”);}
![Page 72: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/72.jpg)
72
a. Algoritma yang lengkap untuk proses PUSH
void PUSH(void){ if ( Top < n-1 ) { Top = Top + 1; S[Top] = X; } else printf( “Stack Penuh”);}
void PUSH(void){ if ( Top == n-1 ) printf( “Stack Penuh”); else { Top = Top + 1; S[Top] = X; }}
atau
Bila BISA DIISI lakukan PUSH
Bila PENUH
jangan PUSH
else lakukan PUSH
![Page 73: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/73.jpg)
73
b. Algoritma yang lengkap untuk proses POP
void POP(void){ if (Top > -1 ) { X = S[Top]; Top = Top-1; } else printf(“Stack Kosong”);}
Algoritma yang lengkap untuk proses POP dengan ‘logika terbalik’
void POP(void){ if ( Top == -1 ) printf(“Stack Kosong”); else { X = S[Top]; Top = Top - 1; } }
atau :
Bila ADA ISINYA lakukan POP
Bila KOSONG jangan POP
else lakukan POP
![Page 74: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/74.jpg)
74
1.2.6 Contoh Soal PUSH dan POP .
Baca sendiri di diktat
![Page 75: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/75.jpg)
75
1.3 Aplikasi Stack.
Memeriksa kelengkapan pasangan kurung buka dan kurung tutup suatu arithmetic statement
1.3.1.
A + B * ( C - D) / ( E + F ) BENAR
A + B * ( C - D / ( E + F ) SALAH
Merobah (konversi) bentuk INFIX menjadi bentuk POSTFIX
1.3.2.
A + B + C * D
A + (B + C) * D
A B + C D * +
A B C + D * +
INFIX POSTFIX
Mencatat Return Address oleh Operating System sewaktu menjalankan sebuah program pada pelaksanaan call suatu function.
1.3.3.
![Page 76: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/76.jpg)
76
1.4 Pointer sebagai penunjuk Stack.
a.Menyiapkan Stack dan Pointer :
define n 11-int S[n], *Top, *BatasAtas, *Dasar--Dasar = &S[-1];Top = &S[-1];BatasAtas = &S[n-1];
n-10 1 2 3 4 5 6 7 8 9 10
BatasAtasTop
Dasar
![Page 77: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/77.jpg)
77
n0 1 2 3 4 5 6 7 8 9 10
BatasAtasTop
Dasar
a. Algoritma untuk PUSH
if(Top < BatasAtas) Top++; *Top = X;else printf(“Stack Penuh);
b.Algoritma untuk POP
if(Top > Dasar) X = *Top; Top--;else printf(“Stack Penuh);
![Page 78: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/78.jpg)
78
1.5 Representasi Stack menggunakan structure.
Perhatikan contoh berikut ini :
a. Menyiapkan Stack.
#define MAXSTACK 10
typedef char ItemType;
typedef struct StackTag { int Top; ItemType S[MAXSTACK];} StackType;
dibuat 10 elemenS[0] sampai dengan S[9]
tipe : char
b. Initialisasi.
void Intitialize(StackType *P ) { P->Top = -1; }
![Page 79: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/79.jpg)
79
1.5 Representasi Stack menggunakan structure.
Perhatikan contoh berikut ini :
c. Proses PUSH.
void PUSH(ItemType item, StackType *P) { if(P->Top >= MAXSTACK-1) printf(“Stack Penuh”); else P->entry[++P->Top] = item;
d. Proses POP.
void POP(ItemType *Q, StackType *P) { if(P->Top <= -1) printf(“Stack Kosong”); else *Q = P->S[P->Top--]; }
![Page 80: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/80.jpg)
80
X X X X
0 1 2 3 4 5 6 n-1
Top
Soal-I. Untuk Stack yang diilustrasikan pada Gambar diatas :
a. Kosongb. Penuhc. Bisa diisid. Ada isinya
1. Sebutkan ciri bahwa Stack :
2. Tulis algoritma dasar untuk:a. PUSHb. POP
3. Tulis algoritma yang lengkap untuk:a. PUSHb. POP
5. Tulis program (penggalan program) untuk mengeluarkan (POP) isi Stack satu per satu dan mencetaknya, sampai Stack menjadi kosong.
4. Tulis program (penggalan program) untuk menginput data melalui keyboard satu persatu dan mem Push data tersebut ke Stack sampai Stack penuh tak bisa diisi lagi.
1.6 Soal Latihan Mandiri.
![Page 81: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/81.jpg)
81
6. Bila Stack berisi bilangan integer, maka susun algoritma untuk menghitung dan mencetak total isi Stack tanpa menghapus isi Stack.
8. Dipastikan stack terisi lebih dari 10 elemen. Tulis program (penggalan program) untuk mengeluarkan (POP) isi stack sebanyak 10 elemen, satu per satu dan mencetaknya ke layar.
7. Dianggap tempat yang tersedia mesih lebih dari 10 tempat. Tulis program (penggalan program) untuk menginput sebanyak 10 buah data melalui keyboard satu persatu dan mem Push data tersebut ke Stack.
![Page 82: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/82.jpg)
82
6. Bila Stack berisi bilangan integer, maka susun algoritma untuk menghitung dan mencetak total isi Stack tanpa menghapus isi Stack.
![Page 83: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/83.jpg)
83
6. Bila Stack berisi bilangan integer, maka susun algoritma untuk menghitung dan mencetak total isi Stack tanpa menghapus isi Stack.
![Page 84: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/84.jpg)
84
6. Bila Stack berisi bilangan integer, maka susun algoritma untuk menghitung dan mencetak total isi Stack tanpa menghapus isi Stack.
Top X
3Top
25 12 17 10 S[ ]
0 1 2 3 4 5 6 7 8 9
n-1
64
Total
![Page 85: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/85.jpg)
85
7. Dianggap tempat yang tersedia mesih lebih dari 10 tempat. Tulis program (penggalan program) untuk menginput sebanyak 10 buah data melalui keyboard satu persatu dan mem Push data tersebut ke Stack.
![Page 86: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/86.jpg)
86
7. Dianggap tempat yang tersedia mesih lebih dari 10 tempat. Tulis program (penggalan program) untuk menginput sebanyak 10 buah data melalui keyboard satu persatu dan mem Push data tersebut ke Stack.
![Page 87: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/87.jpg)
87
7. Dianggap tempat yang tersedia mesih lebih dari 10 tempat. Tulis program (penggalan program) untuk 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
Top
X X X X
Top X
3
![Page 88: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/88.jpg)
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 mencetaknya ke layar.
![Page 89: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/89.jpg)
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 mencetaknya ke layar.
![Page 90: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/90.jpg)
90
8. Dipastikan stack terisi lebih dari 10 elemen. Tulis program (penggalan program) untuk mengeluarkan (POP) isi stack sebanyak 10 elemen, satu per satu dan mencetaknya ke layar.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 n-1
Top
X X X X X X X X X X X X X X X
Top X
14
![Page 91: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/91.jpg)
91
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. Tapi bila isi stack kurang dari 10 elemen, maka keluarkan semua isi stack, sampai stack menjadi kosong.
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. Tapi bila tempat yang tersedia kurang dari 10 tempat, maka cukup menginput dan mem Push sebanyak tempat yang tersedia, sampai stack penuh.
![Page 92: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/92.jpg)
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. Tapi bila tempat yang tersedia kurang dari 10 tempat, maka cukup menginput dan mem Push sebanyak tempat yang tersedia, sampai stack penuh.
![Page 93: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/93.jpg)
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. Tapi bila tempat yang tersedia kurang dari 10 tempat, maka cukup menginput dan mem Push sebanyak tempat yang tersedia, sampai stack penuh.
![Page 94: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/94.jpg)
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. 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-1
Top
X X X X X X X X X X X X X X X
Top X
14
![Page 95: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/95.jpg)
95
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. 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-1
Top
X X X X X X X X
Top X
7
![Page 96: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/96.jpg)
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. Tapi bila isi stack kurang dari 10 elemen, maka keluarkan semua isi stack, sampai stack menjadi kosong.
![Page 97: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/97.jpg)
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. Tapi bila isi stack kurang dari 10 elemen, maka keluarkan semua isi stack, sampai stack menjadi kosong.
![Page 98: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/98.jpg)
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. 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-1
Top
X X X X X X X X
Top X
7
![Page 99: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/99.jpg)
99
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. 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-1
Top
X X X X X X X X X X X X X X X
Top X
14
![Page 100: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/100.jpg)
100
![Page 101: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/101.jpg)
101
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 dalam keadaan kosong, penuh, bisa diisi, atau ada isinya.Tulis program (penggalan program) untuk menginput data melalui keyboard satu persatu dan mem Push data tersebut ke Stack (bila stack tersebut bisa diisi) sampai Stack penuh tak bisa diisi lagi.
1
![Page 102: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/102.jpg)
102
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 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.
2
![Page 103: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/103.jpg)
103
3 Sudah ada dua buah stack S1, dan S2, yang dibuat dengan int S1[n] dan S2[n]. Stack S1 sudah ada isinya, dan stack S2, belum ada isinya, yang diilustrasikan dengan gambar disebelah kanan ini.
175
33251215270
1
2
3
4
5
6
7
-1 S1
Top1
01
2
3
4
5
6
7
-1 S2Top2
Susun program (penggalan program) untuk mengeluarkan isi stack S1, dan memindahkan isinya ke stack S2, sehingga stack S1 menjadi kosong, dengan ilustrasi seperti gambar disebelah kanan ini.
01
2
3
4
5
6
7
-1 S1Top1
27151225335
1701
2
3
4
5
6
7
-1 S2
Top2
![Page 104: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/104.jpg)
104
4
Sudah ada tiga buah stack S1,S2 dan S3, yang dibuat dengan int S1[n], S2[n] dan S3[n]. Stack S1 sudah ada isinya, dan stack S2 dan S3, belum ada isinya, yang diilustrasikan dengan gambar disebelah kanan ini.
175
33251215270
1
2
3
4
5
6
7
-1 S1
Top1
01
2
3
4
5
6
7
-1 S2Top2
Susun program (penggalan program) untuk mengeluarkan isi stack S1, dan memindahkan isinya ke stack S2, sehingga stack S1 menjadi kosong, dengan ilustrasi seperti gambar disebelah kanan ini. Stack S3 dapat digunakan bilamana diperlukan
01
2
3
4
5
6
7
-1 S1Top1
175
33251215270
1
2
3
4
5
6
7
-1 S2
Top2
01
2
3
4
5
6
7
-1 S3Top3
01
2
3
4
5
6
7
-1 S3Top3
![Page 105: 01 Single Stack](https://reader034.vdocument.in/reader034/viewer/2022052123/5571fb444979599169946483/html5/thumbnails/105.jpg)
105
5 Sudah ada tiga buah stack S1,S2 dan S3, yang dibuat dengan int S1[n], S2[n] dan S3[n]. Stack S1 sudah ada isinya, dan stack S2 dan S3, belum ada isinya, yang diilustrasikan dengan gambar disebelah kanan ini.
175
33251215270
1
2
3
4
5
6
7
-1 S1
Top1
01
2
3
4
5
6
7
-1 S2Top2
Susun program (penggalan program) untuk mengeluarkan isi stack S1, dan memindahkan isinya ke stack S2, sehingga stack S1 menjadi kosong, dan isi stack S2 urut menaik dengan ilustrasi seperti gambar disebelah kanan ini. Stack S3 dapat digunakan bilamana diperlukan
01
2
3
4
5
6
7
-1 S1Top1
33272517151250
1
2
3
4
5
6
7
-1 S2
Top2
01
2
3
4
5
6
7
-1 S3Top3
01
2
3
4
5
6
7
-1 S3Top3