Contoh Program Stack (Tumpukan)

#include <stdio.h>
#include <conio.h>
#include <iostream.h>
#include <stdlib.h>

class element
{
public:
int value;
element* next;
};//class element

class stack
{
public:
int size;
element* current;

stack()
{
  size=0;
  current=NULL;
}//default constructor

bool push(int,element*);
bool pop();
bool isEmpty();
int getStackSize();
void printStackSize();
void printStackElements(element*);
void printStackMenu();
};

bool stack::push(int ele,element* temp)
{
	temp=new element;
	if(current==NULL)
	{
		temp->next=NULL;
	}
	else
	{
		temp->next=current;
	}
	temp->value=ele;
	current=temp;
	printf("%d inserted\n\n",ele);
	size++;
    return false;
}

bool stack::pop()
{
	if(isEmpty())
	{
	cout<<"\nStack is Empty\n";
	return false;
	}
	else
	{
	cout<<"\n Element To POP :"<<current->value;
	cout<<"\n Before POP";
	printStackElements(current);
	current=current->next;
	cout<<"\n After POP";
	printStackElements(current);
	size=size--;
	}
	return true;
}

bool stack::isEmpty()
{
	if(getStackSize()==0)
	return true;

	return false;
}

int stack::getStackSize()
{
return size;
}//returns size of the stack

void stack::printStackSize()
{
cout<<"\nThe Size of the Stack:"<<size<<"\n";
}//print the stack size

void stack::printStackElements(element* base)
{
     	element* curr2;
		curr2= base;
		cout<<"\n-----\n";
		cout<<"STACK\n";
		cout<<"-----\n";
		while(curr2!=NULL)
		{
			cout<<" |"<<curr2->value<<"|\n";
			curr2=curr2->next;
		}
}// print the stack

void stack::printStackMenu()
{
cout<<"Welcome to Stack \n";
cout<<"1.Push an element\n";
cout<<"2.Pop an element\n";
cout<<"3.Display Stack\n";
cout<<"4.Size Of Stack\n";
cout<<"5.Exit\n";
}

int main()
{
stack st;
char Option=0;
int val;
	while(1)
	{
		st.printStackMenu();
		cin>>Option;
			switch(Option)
			{
			case '1':
					cout<<"Enter a Number \n";
					cin>>val;
					st.push(val,st.current);
					break;
			case '2':
					st.pop();
					break;

			case '3':
					st.printStackElements(st.current);
					break;

			case '4':
					st.printStackSize();

					break;
			case '5':
					exit(0);
					break;
			}
	}
}

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s