Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- // inisialisasi maksimal elemen pada array
- const int max_element = 255;
- struct Stack{
- // data pada stack
- char member[max_element];
- // menyimpan nilai top / peek
- int TOP;
- };
- Stack S;
- // membuat sebuah stack
- void createStack(Stack& S){
- S.TOP = -1;
- }
- // mengembalikan elemen tertinggi stack
- int peek(Stack S){
- return S.member[S.TOP];
- }
- // mengecek apakah suatu stack kosong
- bool isEmpty(Stack S){
- if (S.TOP < 0){
- return true;
- } else {
- return false;
- }
- }
- // memasukan elemen ke stack
- void push(Stack& S, char new_element){
- // cek jika stack telah mencapai batas maksimal
- if (S.TOP == max_element - 1){
- cout<<"Stack Overflow"<<endl;
- } else {
- // increment nilai top / peek
- S.TOP = S.TOP + 1;
- // masukan data dari elemen stack
- S.member[S.TOP] = new_element;
- }
- }
- // mengeluarkan elemen ke stack
- void pop(Stack& S, char& result_element){
- // cek jika stack kosong (tidak mempunyai elemen)
- if (isEmpty(S)){
- cout<<"Stack Underflow"<<endl;
- } else {
- // ambil elemen paling atas
- result_element = peek(S);
- // decrement nilai top / peek
- S.TOP = S.TOP - 1;
- }
- }
- // mencetak elemen / isi sebuah stack
- void traversal(Stack S){
- if (isEmpty(S)){
- cout<<"Stack Empty";
- } else {
- cout<<"Top\n^\n|\n";
- for (int i = S.TOP; i >= 0; i--){
- cout<<S.member[i]<<endl;
- }
- }
- }
- int main()
- {
- char element;
- createStack(S);
- push(S, 'A');
- push(S, 'B');
- push(S, 'C');
- pop(S, element);
- // cout<<element;
- traversal(S);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement