1. Pengertian Stack
Stack adalah tipe data abstrak yang umum digunakan pada seluruh pemrograman komputer. Stack sendiri sama seperti halnya tumpukan jika di dunia nyata, misalnya tumpukan buku yang habis dibaca ditumpuk diatas meja dari bawah keatas, kemudian akan diambil satu persatu dari atas ke bawah di masukkan ke lemari buku.
2. Operasi Pada Stact
  1. Push (Tambah Data)
 Operasi Push yaitu operasi menambahkan elemen pada urutan teakhir (paling atas).
  1. Pop (Hapus Data)
Operasi Pop yaitu operasi mengambil sebuah elemen data urutan terakhir dan menghapus elemen tersebut dari stack.
3. Contoh Program

#include <iostream>
#define MAX 10
using namespace std;

struct Stack {
  int top, data[MAX];
} Tumpukan;

void init() {
  Tumpukan.top = -1;
}

bool isEmpty() {
  return Tumpukan.top == -1;
}

bool isFull() {
  return Tumpukan.top == MAX - 1;
}

void push() {
  if (isFull()) {
    cout << "\nTumpukan penuh" << endl;
  } else {
    Tumpukan.top++;
    cout << "\nMasukkan data = ";
    cin >> Tumpukan.data[Tumpukan.top];
    cout << "Data " << Tumpukan.data[Tumpukan.top] << " masuk ke stack"
       << endl;
  }
}

void pop() {
  if (isEmpty()) {
    cout << "\nData kosong\n" << endl;
  } else {
    cout << "\nData " << Tumpukan.data[Tumpukan.top] << " sudah terambil"
       << endl;
    Tumpukan.top--;
  }
}

void printStack() {
  if (isEmpty()) {
    cout << "Tumpukan kosong";
  } else {
    cout << "\nTumpukan : ";
    for (int i = Tumpukan.top; i >= 0; i--)
      cout << Tumpukan.data[i] << ((i == 0) ? "" : ",");
  }
}

int main() {
  int pilihan, data;
  init();
  do {
    printStack();
    cout << "\n1. Input (Push)\n"
       << "2. Hapus (Pop)\n"
       << "3. Keluar\n"
       << "Masukkan Pilihan: ";
    cin >> pilihan;
    switch (pilihan) {
    case 1:
      push();
      break;
    case 2:
      pop();
      break;
    default:
      cout << "Pilihan tidak tersedia" << endl;
      break;
    }
  } while (pilihan != 3);
}

Untuk mencoba hasil running diatas, silakan klik run(segitiga hijau) dibawah :


Sekian penjelasan dari saya, salah khilaf mohon maaf terima kasih :)

Sumber :
Embed system C++ repl.it
Blognya Irza
Rahmat subekti's blog

0 Komentar