Tech Guide Blog

Tech Guide Programming Tutorial Tips Tricks

Archive for the ‘Programming’ Category

Stack C++ Data Structure Source Code

Posted by Admin On February - 7 - 2009

This time I will show you how to make a stack structure class with Visual C++, I do this with Visual C++ 6.0 Enterprise Edition. Just for info, stack is one of data structure types where data is somewhat placed on top of another data (stack). Adding or removing data can be done only on top of stack itself, last in first out. The adding is called push and getting or removing is called pop.
If you want to put a new data, it should be placed like this.

stack-illustration

stack illustration

then, if you want to get a data, it should return the last data you put on it (top of stack).

stack-illustration

stack illustration

pop-stack

Pop Stack

The third picture is stack after being popped out. Let’s get to the code then, juts make a header file (.h) and start typing. I will make a simple application that can keep integers with stack method.

//============== start of code ==============//
#include <stdio.h>
#include <conio.h>
#include <windows.h>

#define MAX 255

class cstack
{
private:
	int data[MAX]; // this is the place to keep
	int top; // to point the top of the stack
public:
	cstack() // constructor
	{
		top = 0;
	}
	void push(int value)
	{
		if (!full())
		{
			data[top] = value;
			top++;
		}
	}
	int pop()
	{
		if (!empty())
		{
			top--;
			return data[top];
		}
	}
	bool full()
	{
		if (top == MAX)
			return 1;
		else
			return 0;
	}
	bool empty()
	{
		if (top == 0)
			return 1;
		else
			return 0;
	}
	void view() // make a function to view the data
	{
		int i;
		printf("Just another stack data:n");
		for (i = 0; i < top; i++)
			printf("%d ", data[i]);
		getch();
	}
};
//=============== end of code ===============//

After you finished, you can make a C++ source file (.cpp) and can use that stack class that have you made.

//============== start of code ==============//
#include "header.h" // this must be the same place with your header file

void main()
{
	int choice, temp;
	cstack stack;

	do
	{
		system("CLS");
		printf("MENUn1. Pushn2. Popn3. Viewn4. ExitnChoice: ");
		scanf("%d",&choice);
		system("CLS");
		if (choice == 1)
		{
			printf("Value: ");
			scanf("%d",&temp);
			stack.push(temp);
		}
		else if (choice == 2)
			stack.pop();
		else if (choice == 3)
			stack.view();
	}
	while (choice != 4);
}
//=============== end of code ===============//

Save it and compile to try this simple application.

Popularity: 49% [?]