TI POLITALA 2A ALPRO STACK
Stack
Stack (tumpukan) dapat diartikan sebagai list yang operasi penghapusan dan penyisipannya dapat dilakukan di satu ujung, atau dapat diartikan sebagai suatu kumpulan data yang seolah-olah ada data yang diletakkan diatas data lainnya.
Operasi Utama Stack
Operasi push yaitu operasi menambahkan elemen pada urutan terakhir(paling atas).
Operasi pop yaitu operasi mengambil sebuah elemen data pada urutasn terakhir dan menghapus elem
en tersebut dari stack.
Operasi Tambahan
Clear : untuk mengosongkan stack.
IsEmpty : untuk memeriksa apakah stack kosong.
IsFull : untuk memeriksa apakah satck sudah penuh.
Retrieve : untuk mendapatkan nilai dari item teratas.
Peek : untuk melihat element teratas dari stack
Stack Dengan Array Dari Struct
Definisikan Stack dengan menggunakan suatu struct
Definisikan konstanta MAX_STACK untuk menyimpan maksimum isi stack
Elemen struct Stack adalah array data dan top untuk menadakan posisi data teratas
Buatlah variabel tumpuk sebagai implementasi dari struct Stack
Deklarasikan operasi-operasi/function di atas dan buat implemetasinya
Hasil Running
Penjelasan
STACK adalah salah satu list linear dalam struktur data yang digunakan untuk menyimpan dan mengambil data dengan konsep LIFO (Last In First Out). Dimana dalam stack ini kumpulan data yang masuk diletakkan di atas data yang lain. Dan berdasar konsep LIFO maka data yang terakhir kali disimpan dalam stack akan menjadi data yang pertama kali diambil. Dalam prosesnya, untuk memasukkan sebuah data ke dalam stack atau dengan kata lain ke bagian atas dari sebuah tumpukan digunakan perintah push. Dan untuk memindahkan data dari tempat tersebut digunakan perintah pop. Sedangkan dalam penyajiannya, stack bisa memakai array atau linked list.
References
Source Code & Program - Contoh Kasus
#include <iostream>
#include <conio.h> #include <stdlib.h> #define max 4 using namespace std; struct Tumpukan { int atas; int data[max]; }T; void awal() { T.atas=-1; } int kosong() { if(T.atas==-1) return 1; else return 0; } int penuh() { if(T.atas==max-1) return 1; else return 0; } void input(int data) { if(kosong()==1) { T.atas++;//T.atas=T.atas+1; T.data[T.atas]=data; cout<<"Data "<<T.data[T.atas]<<" masuk ke stack"; } else if(penuh()==0) { T.atas++; T.data[T.atas]=data; cout<<"Data "<<T.data[T.atas]<<" masuk ke stack"; } else cout<<"Tumpukan penuh"; } void hapus() { if(kosong()==0) { cout<<"Data teratas sudah terambil"; T.atas--;//T.atas=T.atas-1; } else cout<<"Data kosong"; } void tampil() { if(kosong()==0) { for(int i=T.atas;i>=0;i--) { cout<<"\nTumpukan ke "<<i<<"="<<T.data[i]; } } else cout<<"Tumpukan kosong"; } void bersih(){ T.atas=-1; cout<<"Tumpukan kosong!"; } //---------------------------------------> int main() { int pil,data; awal(); do { system("cls"); cout<<"1. Input (PUSH)\n2. Hapus (POP)\n3. Tampil\n4. Bersihkan\n5. Keluar\nMasukkan pilihan :"; cin>>pil; switch(pil) { case 1:cout<<"Masukkan data = ";cin>>data; input(data); break; case 2:hapus(); break; case 3:tampil(); break; case 4:bersih(); break; //case 5:top(); // break; // case 6:isempty(); // break; // case 7:Noel() //break case 8: cout<<"Terimakasih, tekan enter untuk keluar"; } getch(); } while(pil!=5); } |
Komentar
Posting Komentar