Selasa, 10 Desember 2019

Program Push dan Pop nilai dalam stack

1. Deskripsi Stack
Stack adalah sebuah kumpulan data dimana data yang diletakkan di atas data yang lain. Stack merupakan struktur data    yang menggunakan LIFO (Last In First Out) yang memiliki arti "terakhir masuk sebagai yang pertama keluar".

2. Penyajian Stack
Beberapa cara untuk menyajikan sebuah stack tergantung pada permasalahan yang akan diselesaikan. kita dapat menggunakan array untuk menyajikan sebuah stack, dengan anggapan bahwa banyaknya elemen maksimum dari stack    tersebut tidak akan melebihi batas maksimum banyaknya elemen dalam array. Dan juga kita dapat menggunakan tipe data    struktur (struct) yang terdiri dari dua field. Field pertama bertipe array untuk menyimpan elemen stack , medan kedua    bertipe integer untuk mencatat posisi ujung stack.

3. operasi pada stack
operasi-oerasi dasar pada stack adalah sebagai berikut:

   a. Push : digunakan untuk menambahkan item pada stack yang paling atas

   b. Pop : diambil untuk mengambi item pada tumpukan paling atas

   c. Clear : digunakan untuk mengosongkan stack

   d. IsEmpty : fungsi yang digunakan untuk mengecek apakah stack sudah kosong

   e. IsFull : fungsi yang digunakan apakah stack yang digunakan sudah penuh

contoh program
#include<iostream.h>
#include<conio.h>
#define max 10

struct Tumpukan{
int atas;
int data[max];
}T;

void awal(){
T.atas=-1;
}

int IsEmpty(){
if(T.atas==-1)
return 1;
else
return 0;
}

int IsFull(){
if(T.atas==max-1)
return 1;
else
return 0;
}

void Push(int data){
if(IsEmpty()==1)
 {T.atas++;
T.data[T.atas]=data;
cout<<"Data"<<T.data[T.atas]<<"masuk ke stack";}
 else if(IsFull()==0)
 {T.atas++;
T.data[T.atas]=data;
cout<<"Data"<<T.data[T.atas]<<"masuk ke stack";}

 else
cout<<"Tumpukan penuh";
 }

 void Pop(){
if(IsEmpty()==0){
cout<<"Data teratas sudah terambil";
T.atas--;
}
else
cout<<"Data Kosong";
}

 void Print(){
 if(IsEmpty()==0)
{for(int i=T.atas;i>=0;i--)
{cout<<"\nTumpukan ke "<<i<<"="<<T.data[i];}
  }
else
cout<<"Tumpukan kosong";
}

void Clear(){
T.atas==-1;
cout<<"Tumpukan kosong!";
}

void main(){
int pil,data;
awal();
do
{
clrscr();
cout<<"1. Push\n2. Pop\n3. Print\n4. Clear\n5. Exit\n Masukkan pilihan:";
cin>>pil;
switch(pil)
{case 1:cout<<"Masukkan data = ";cin>>data;
Push(data);
break;
case 2:Pop();
break;
case 3:Print();
break;
case 4:Clear();
break;
case 5:cout<<"Terimakasih, tekan enter untuk keluar";
}
getch(); }
while(pil=5);}

output







Selamat Mencoba dan Semoga Bermanfaat☺

Tidak ada komentar:

Posting Komentar

Deque (Double Ended Queue)

Deque (Double Ended Queue) adalah suatu list linear atau linear list, yang penambahan dan penghapusan elemennya dapat dilakukan pada kedua ...