Professional Documents
Culture Documents
void AWAL(void)
{
Top
= -1;
}
n-1
a. AWAL (Inisialisasi)
b. PUSH (Insert, Masuk, Simpan, Tulis)
c. POP (Delete, Keluar, Ambil , Baca / Hapus)
Proses AWAL
Top
TopX
4 15
Top
TopX
Sesudah :
S[ ]
Pertanyaan : dalam keadaan seperti sekarang
Kalau ada perintah POP ( Keluar, Ambil)
algoritma dasar
atau :
push
12217 10
Sebelum
0 25
1POP
3 4
S[ ]
Top
25
12
17
Setelah
POP 2
0 1
3 4
S[ ]
Top
63 7
8n-19
62 7
8n-19
10
Top
Top
X
X
X = S[Top--];
Catatan :
Semua variabel dibuat
bersifat GLOBAL
13
Top
2
3XXX
4X
5 n-61
5 n-61
X4XXXX
XX61
3 3XXTop
n5X
Top
Bila KOSONG
jangan POP
else
lakukan POP
Bila PENUH
jangan PUSH
else
lakukan PUSH
10
11 12 13
10
c.
n-1
11 12 13 14 15 16 17 18 19
a.
d.
void PUSH1(void)
{
if (Top2 - Top1 == 1 )
printf(Stack Penuh);
else
{
Top1
= Top1 + 1;
S[Top1] =
X;
}
b.
}
Que linier
Q[++R] = X;
F > R
atau
F = R + 1
Antrian KOSONG
atau :
F < R+1
a.
b.
void AWAL(void)
{
Counter > 0
F = 0;
R = -1;
Counter = 0;
}
if ( PENUH )
c.
if ( KOSONG )
Algoritma : L = L - 1;
Q[L] = X;
Kalau ada perintah keluar dari kanan,
Algoritma : X = Q[R];
R = R - 1;
Kalau ada perintah keluar dari kiri,
Double queue
Kalau ada perintah masuk dari kanan
Algoritma : R = R + 1;
Q[R] = X;
Kalau ada perintah masuk dari kiri,
Algoritma : X = Q[L];
L = L + 1;
c.2. Delete Kanan
R == n-1 && L == 0
L > 0
L < R+1
atau
L <= R
atau
R > L-1
atau
R >= L
a.
Lish
Q = FIRST->LINK;
free(FIRST);
FIRST = Q;
Q->LINK = R;
Menghapus
simpul (8)
Atau:
Linear Doubly
Linked List
Q = FIRST;
Tot = 0;
while (Q != NULL)
{ Tot=Tot+Q->INFO;
Q = Q->LINK;
}
printf(%i, Tot);
(2)
&(2)
(1)
NULL