sama saja seperti Algoritma Stack proses itu disebut dengan LIFO (last in first out),. atau terakhir masuk pertama kali keluar. gambar dibawah ini adalah contoh dari Algoritma Stack LIFO..
push istilah yang digunakan Algoritma Stack untuk menambahkan Elemen, dan Pop digunakan untuk mengurangi atau menghapus Elemen dalam Algortima Stack.
ilustrasi dari algoritma Stack ini bisa didownload disini
http://www.ziddu.com/download/15438972/ilustrasi_stack.swf.html
Algoritma dari stack ini.
1. pertama melakukan pemeriksaan,... apakah antrian kosong atau penuh
2. ketika akan melakukan proses push lakukan pemeriksaan pada tumpukan apakah tumpukan penuh,. jika salah maka lakukan proses No: 3. jika benar maka lakukan proses No: 6.
3. memasukan Elemen dalam tumpukan tersebut.
4. ketika akan melakukan proses pop lakukan pemeriksaan terlebih dahulu pada tumpukan apakah tumpukan sudah kosong,. jika benar maka lakukan proses No : 5. jika salah proses No: 6.
6. Menghapus Elemen yang ada paling atas.
5. tampilkan pemberitahuan bahwa tumpukan penuh atau kosong.
contoh PROGRAM STACK.
//latihan_stack.cpp
#include<stdio.h>
#include<stdlib.h>
#define max_stack 5
struct STACK{
int data[max_stack];
int top;
};
struct STACK stack;
int main(){
int pilih, data, i;
stack.top=-1;
do{
printf("menu operasi stack\n");
printf("==================\n");
printf("1. push data\n");
printf("2. pop data \n");
printf("3. tampil data\n");
printf("4. keluar\n");
printf("masukan pilihan anda [1-4] =");scanf("%d",&pilih);
switch(pilih){
case 1:
if (stack.top==(max_stack-1)){
printf("stack penuh.");
}
else{
printf("\nmasukan data yang ingin dipush :");scanf("%d",&data);
stack.top++;
stack.data[stack.top]=data;
}
break;
case 2:
if(stack.top==-1){
printf("stack kosong....!!!\n");
}
else{
printf("\n\nstack yang dipopkan :%d.\n\n\n",stack.data[stack.top]);
stack.top--;
}
break;
case 3:
if(stack.top==-1){
printf("stack kosong...!!!\n");
}
else{
printf("Data :\n");
for(i=stack.top;i>=0;i--){
printf("|\t%d\t|\n-----------------\n",stack.data[i]);
}
printf("\n");
}
break;
case 4: exit(0);
}
}
while(pilih>0 && pilih<=4);
return 0;
}
No comments:
Post a Comment