implement stack using linked list in c++

C++ program for implement stack using linked list. Here problem description and other solutions.

// Include header file
#include <iostream>
using namespace std;
// C++ program for
// Implementation stack using linked list

// Stack Node
class StackNode
{
	public: int data;
	StackNode *next;
	StackNode(int data, StackNode *top)
	{
		this->data = data;
		this->next = top;
	}
};
class MyStack
{
	public: 
    StackNode *top;
	int count;
	MyStack()
	{
		this->top = nullptr;
		this->count = 0;
	}
	// Returns the number of element in stack
	int size()
	{
		return this->count;
	}
	bool isEmpty()
	{
		if (this->size() > 0)
		{
			return false;
		}
		else
		{
			return true;
		}
	}
	// Add a new element in stack
	void push(int data)
	{
		// Make a new stack node
		// And set as top
		this->top = new StackNode(data, this->top);
		// Increase node value
		this->count++;
	}
	// Add a top element in stack
	int pop()
	{
		int temp = 0;
		if (this->isEmpty() == false)
		{
			// Get remove top value
			temp = this->top->data;
			this->top = this->top->next;
			// Reduce size
			this->count--;
		}
		return temp;
	}
	// Used to get top element of stack
	int peek()
	{
		if (!this->isEmpty())
		{
			return this->top->data;
		}
		else
		{
			return 0;
		}
	}
};

int main()
{
	// Create new stack 
	MyStack *s = new MyStack();
	cout << "\n Is empty : " << s->isEmpty() << endl;
	// Add element
	s->push(15);
	s->push(14);
	s->push(31);
	s->push(21);
	s->push(10);
	cout << "\n Top  : " << s->peek() << endl;
	cout << " Size : " << s->size() << endl;
	cout << "\n Is empty : " << s->isEmpty() << endl;
	// Delete Stack Element
	int data = s->pop();
	cout << "\n Pop element " << data << endl;
	cout << " Size : " << s->size() << endl;
	data = s->pop();
	cout << "\n Pop element " << data << endl;
	cout << " Size : " << s->size() << endl;
	return 0;
}

Output

 Is empty : 1

 Top  : 10
 Size : 5

 Is empty : 0

 Pop element 10
 Size : 4

 Pop element 21
 Size : 3


Please share your knowledge to improve code and content standard. Also submit your doubts, and test case. We improve by your feedback. We will try to resolve your query as soon as possible.

New Comment







© 2021, kalkicode.com, All rights reserved