Stack Using Array.cpp 944 字节
Newer Older
Y
yanglbme 已提交
1
#include <iostream>
C
Christian Bender 已提交
2 3
using namespace std;

A
Ashwek Swamy 已提交
4
int *stack;
Y
yanglbme 已提交
5
int top = 0, size;
C
Christian Bender 已提交
6 7 8

void push(int x)
{
Y
yanglbme 已提交
9
	if (top == size)
C
Christian Bender 已提交
10
	{
Y
yanglbme 已提交
11
		cout << "\nOverflow";
C
Christian Bender 已提交
12 13 14
	}
	else
	{
Y
yanglbme 已提交
15
		stack[top++] = x;
C
Christian Bender 已提交
16 17 18 19 20
	}
}

void pop()
{
Y
yanglbme 已提交
21
	if (top == 0)
C
Christian Bender 已提交
22
	{
Y
yanglbme 已提交
23
		cout << "\nUnderflow";
C
Christian Bender 已提交
24 25 26
	}
	else
	{
Y
yanglbme 已提交
27 28
		cout << "\n"
			 << stack[--top] << " deleted";
C
Christian Bender 已提交
29 30 31 32 33 34 35
	}
}

void show()
{
	for (int i = 0; i < top; i++)
	{
Y
yanglbme 已提交
36
		cout << stack[i] << "\n";
C
Christian Bender 已提交
37 38 39 40 41
	}
}

void topmost()
{
Y
yanglbme 已提交
42
	cout << "\nTopmost element: " << stack[top - 1];
C
Christian Bender 已提交
43 44 45
}
int main()
{
Y
yanglbme 已提交
46 47
	cout << "\nEnter Size of stack : ";
	cin >> size;
A
Ashwek Swamy 已提交
48
	stack = new int[size];
C
Christian Bender 已提交
49 50 51
	int ch, x;
	do
	{
Y
yanglbme 已提交
52 53 54 55 56 57 58
		cout << "\n1. Push";
		cout << "\n2. Pop";
		cout << "\n3. Print";
		cout << "\n4. Print topmost element:";
		cout << "\nEnter Your Choice : ";
		cin >> ch;
		if (ch == 1)
C
Christian Bender 已提交
59
		{
Y
yanglbme 已提交
60 61
			cout << "\nInsert : ";
			cin >> x;
C
Christian Bender 已提交
62 63
			push(x);
		}
Y
yanglbme 已提交
64
		else if (ch == 2)
C
Christian Bender 已提交
65 66 67
		{
			pop();
		}
Y
yanglbme 已提交
68
		else if (ch == 3)
C
Christian Bender 已提交
69 70 71
		{
			show();
		}
Y
yanglbme 已提交
72 73 74 75 76
		else if (ch == 4)
		{
			topmost();
		}
	} while (ch != 0);
C
Christian Bender 已提交
77 78 79

	return 0;
}