stack atau tumpukan
merupakan sebuah koleksi objek yang menggunakan prinsip LIFO (Last In First Out), yaitu data yang terakhir kali dimasukkan akan pertama kali keluar dari tumpukan tersebut. Tumpukan dapat diimplementasikan sebagai representasi berkait atau kontigu (dengan tabel fix). Ciri tumpukan:
- Elemen TOP (puncak) diketahui
- penyisipan dan penghapusan elemen selalu dilakukan di TOP
- LIFO
Pemanfaatan tumpukan:
- Perhitungan ekspresi aritmatika (posfix)
- algoritma backtraking (runut balik)
- algoritma rekursif
Operasi tumpukan yang biasanya :
- Push (input E : typeelmt, input/output data : stack): menambahkan sebuah elemen ke tumpukan
- Pop (input/output data : stack, output E : typeelmt ) : menghapus sebuah elemen tumpukan
- Cek : IsEmpty dan IsFull
- Clear : Menghapus data dalam stack
- Tampil : Menyetak hasil data masukan dalam stack
sebagai lebih jelasnya ini coding saya mengenai stack dengan array
____________________________________________________________________________________
#include <iostream>
#include <conio.h>
using namespace std;
int top = 0; //array penanda awal sebagai top
char data [5]; //isi array
char x;
void push (){ //fungsi push
if (top==5){
cout<<"penuh!!";
}
else {
cout<<"\nMasukkan karakter : ";cin>>x;
top++;
data[top]=x;
}
}
void pop (){ //fungsi pop
if (top==0){
cout<<"\nData kosong !!!";
}
else {
x=data[top];
top--;
cout<<"\nData yang di hapus : "<<x;
}
}
void tampil(){
if (top==0){
cout<<"\nData kosong !!!";
}
else {
int i=0;
cout<<"\ndata masuk : \n";
for (i=top; i>0; i--)
cout<<"-->"<<data[i]<<endl;
}
}
void hapus (){ //fungsi menghapus list
top=0;
cout<<"\nList sudah terhapus!!";
}
void cek (){ //fungs mengecek list
if (top < 5){
cout<<"\nmasih ada kosong !!";
}
else if (top == 5){
cout<<"\npenuh !!";
}
}
main (){
int p;
do {
system ("cls");
cout<<"\t\t|****************|";
cout<<"\n\t\t|-----pugcrut----|";
cout<<"\n\t\t|________________|";
cout<<"\n\n\n\t\tSTACK dengan Array\n";
cout<<"\t________________________________\n\n";
cout<<"1.Push\n";
cout<<"2.Pop\n";
cout<<"3.Tampil\n";
cout<<"4.Hapus\n";
cout<<"5.Cek\n";
cout<<"6.Keluar\n";
cout<<"---------------------> " ; p=getche();
if (p=='1'){
push();
}
else if (p=='2'){
pop(); getch();
}
else if (p=='3'){
tampil(); getch();
}
else if (p=='4'){
hapus(); getch();
}
else if (p=='5'){
cek(); getch();
}
}
while(p!='6');
}
Update Contact :
No Wa/Telepon (puat) : 085267792168
No Wa/Telepon (fajar) : 085369237896
Email : Fajarudinsidik@gmail.com
No Wa/Telepon (puat) : 085267792168
No Wa/Telepon (fajar) : 085369237896
Email: Fajarudinsidik@gmail.com
atau Kirimkan Private messanger melalui email dengan klik tombol order dibawah ini :