STACK
(Tumpukan)
Definisi Stack
Stack adalah
suatu tumpukan dari benda. Konsep utamanya adalah LIFO (Last In First
Out), benda yang
terakhir masuk dalam stack akan menjadi benda pertama yang dikeluarkan dari
stack.
Contoh Program Stack
#include <stdio.h>
#include <conio.h>
#include <string.h>
//deklarasi var public
const MaxElemen = 255; //batas maksimum elemen
struct Tumpukan
{
char Isi[MaxElemen];
int Atas;
} T;
void PUSH(char x);
char POP();
//program utama
void main ()
{
int I; // pencacah
char
Kalimat[MaxElemen]; //kalimat yang akan
dibalik
clrscr();
T.Atas =0; // niali awal tumpukan
printf
("Aplikasi Tumpukan untuk Membalik kalimat\n");
printf
("----------------------------------------\n\n");
// Inputkan kalimat
yang akan dibalik
printf("Masukkan
sembarang kalimat : ");gets(Kalimat);
clrscr();
printf("Kalimat
Asli : %s\n",Kalimat);
//Mem-PUSH huruf dari
kalimat ke dalam tumpukan
for(I=0;I<strlen(Kalimat);I++)
{
PUSH(Kalimat[I]);
}
printf("Kalimat
Setelah di Balik : ");
//Mem-POP sekaligus
mencetak isi tumpukan sehingga diperoleh kalimat yang terbalik
for
(I=0;I<strlen(Kalimat);I++)
{
printf("%c",POP());
}
getch();
} //Akhir Program
Utama
//sub program PUSH
berfungsi memasukkan elemen ke dalam STACK
void PUSH (char x)
{
if(T.Atas ==
MaxElemen)
{
printf("Tumpukan
Sudah Penuh");
getch();
}
else
{
T.Atas = T.Atas + 1;
T.Isi[T.Atas] = x;
}
}
//sub program POP
berfungsi mengambil elemen dari STACK
char POP()
{
char hasil;
if(T.Atas == 0)
{
printf("Tumpukan sudah kosong");
hasil = ' ';
}
else
{
hasil =
T.Isi[T.Atas];
T.Atas = T.Atas -
1;
}
return hasil;
}
Tidak ada komentar:
Posting Komentar