Home > Ren's Free Time > Stack dengan C++

Stack dengan C++

December 17, 2010 Leave a comment Go to comments

Stack adalah salah satu jenis struktur data yang menggunakan konsep LIFO ( Last in First Out ). Dengan konsep ini pengambilan data akan berkebalikan urutannya dengan penyimpanan data. Dalam membuat Stack terdapat dua cara yaitu dengan Array dan Linked List. Pemilihan cara dalam membuat Stack tergantung dengan permasalahan yang dihadapi.Ada 2 operasi dasar pada Stack yaitu Push dan Pop. Push digunakan untuk memasukkan data kedalam Stack sedangkan Pop digunakan untuk mengeluarkan data dari Stack. Ilustrasi sederhana Stack

Stack

Stack

Berikut ini implementasi sederhana Stack menggunakan Linked List dan dalam bahasa pemrogramman  C++. Sedangkan tool yang saya gunakan adalah CodeBlocks 8.02

#include <iostream>

using namespace std;

struct node{
int data;
node *link;
};
class Stack{
private:
node *top;
public:
Stack(){
top=NULL;
}
void pushValue(int i);
int popValue();
void viewTop();
void viewAll();
~Stack(){
if(top == NULL)
return;
node *temp;
while(top != NULL)
{
temp = top;
top = top->link;
delete temp;
}
}
};
void Stack::pushValue(int i)
{
node *temp;
temp = new node;
temp->data = i;
temp->link = NULL;
if( top == NULL)
{
top = temp;
}
else
{
temp->link = top;
top = temp;
}
}
int Stack::popValue()
{
node *temp;
int n;
if( top == NULL)
{
cout<<"Stack Empty"<<endl;
return NULL;
}
else
{
n = top->data;
temp= top;
top = top->link;
delete temp;
}
return n;
}
void Stack::viewTop()
{
if( top == NULL)
{
cout<<"Stack Empty"<<endl;
}
else
{
cout<<"Top is: "<< top->data;
}

}
void Stack::viewAll()
{
node *temp;
temp = top;
while(temp->link != NULL)
{
cout << temp->data <<endl;
temp= temp->link;
}
}

int main()
{ Stack s;
int temp;
int pilihan;
while(1)
{
cout<<"Stack"<<endl;
cout<<"1.Push Data"<<endl;
cout<<"2.View Top"<<endl;
cout<<"3.Pop Data"<<endl;
cout<<"4.View All Data"<<endl;
cout<<"5.Exit"<<endl;
cout<<"Enter your choice:";
cin>>pilihan;
switch(pilihan)
{cout<<endl;
case 1:
cout<<"Insert Data:"<<endl;
cin>>temp;
s.pushValue(temp);
break;
case 2:
s.viewTop();
break;
case 3:
temp= s.popValue();
cout<<temp<< "has removed"<<endl;
break;
case 4:
s.viewAll();
break;
case 5:
return 0;
}

}

return 0;
}

Berikut ini Download Code

Semoga membantu😀

Referensi : Dari berbagai sumber

Salah koreksi saya.

  1. Emkha
    March 23, 2011 at 15:42

    nice coding . .
    thx’s guys. . it’s so usefull . .

    • Ren
      March 24, 2011 at 03:34

      you are welcome😀

  2. windayani achmad
    April 14, 2013 at 11:32

    blum mudeng om….
    bisa tolong dijelasin ngga, tulisan yang buanyak itu artinya apa aja?

  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: