C Program to Implement Stack - JohnHau/mis GitHub Wiki
This C++ Program demonstrates operations on Stack. Here is source code of the C++ Program to demonstrate Stack operations. The C++ program is successfully compiled and run on a Linux system. The program output is also shown below.
/*
- C++ Program To Implement Stack using Linked List */ #include #include using namespace std;
/*
- Node Declaration
*/
struct node
{
int info;
struct node *link;
}*top;
/*
- Class Declaration
*/
class stack_list
{
public:
node *push(node *, int);
node *pop(node *);
void traverse(node *);
stack_list()
{
top = NULL;
}
};
/*
- Main: Contains Menu */ int main() { int choice, item; stack_list sl; while (1) { cout<<"\n-------------"<<endl; cout<<"Operations on Stack"<<endl; cout<<"\n-------------"<<endl; cout<<"1.Push Element into the Stack"<<endl; cout<<"2.Pop Element from the Stack"<<endl; cout<<"3.Traverse the Stack"<<endl; cout<<"4.Quit"<<endl; cout<<"Enter your Choice: "; cin>>choice; switch(choice) { case 1: cout<<"Enter value to be pushed into the stack: "; cin>>item; top = sl.push(top, item); break; case 2: top = sl.pop(top); break; case 3: sl.traverse(top); break; case 4: exit(1); break; default: cout<<"Wrong Choice"<<endl; } } return 0; }
/*
- Push Element into the Stack */ node *stack_list::push(node *top, int item) { node *tmp; tmp = new (struct node); tmp->info = item; tmp->link = top; top = tmp; return top; }
/*
- Pop Element from the Stack
*/
node *stack_list::pop(node *top)
{
node *tmp;
if (top == NULL)
cout<<"Stack is Empty"<<endl;
else
{
tmp = top; cout<<"Element Popped: "<info<<endl; top = top->link; delete(tmp); } return top; }
/*
- Traversing the Stack
*/
void stack_list::traverse(node *top)
{
node *ptr; ptr = top; if (top == NULL) cout<<"Stack is empty"<<endl; else { cout<<"Stack elements :"<<endl; while (ptr != NULL) { cout<info<<endl; ptr = ptr->link; } } } $ g++ stack.cpp $ a.out
Operations on Stack
1.Push Element into the Stack 2.Pop Element from the Stack 3.Traverse the Stack 4.Quit Enter your Choice: 3 Stack is empty
Operations on Stack
1.Push Element into the Stack 2.Pop Element from the Stack 3.Traverse the Stack 4.Quit Enter your Choice: 2 Stack is Empty
Operations on Stack
1.Push Element into the Stack 2.Pop Element from the Stack 3.Traverse the Stack 4.Quit Enter your Choice: 1 Enter value to be pushed into the stack: 100
Operations on Stack
1.Push Element into the Stack 2.Pop Element from the Stack 3.Traverse the Stack 4.Quit Enter your Choice: 3 Stack elements : 100
Operations on Stack
1.Push Element into the Stack 2.Pop Element from the Stack 3.Traverse the Stack 4.Quit Enter your Choice: 1 Enter value to be pushed into the stack: 200
Operations on Stack
1.Push Element into the Stack 2.Pop Element from the Stack 3.Traverse the Stack 4.Quit Enter your Choice: 3 Stack elements : 200 100
Operations on Stack
1.Push Element into the Stack 2.Pop Element from the Stack 3.Traverse the Stack 4.Quit Enter your Choice: 1 Enter value to be pushed into the stack: 150
Operations on Stack
1.Push Element into the Stack 2.Pop Element from the Stack 3.Traverse the Stack 4.Quit Enter your Choice: 3 Stack elements : 150 200 100
Operations on Stack
1.Push Element into the Stack 2.Pop Element from the Stack 3.Traverse the Stack 4.Quit Enter your Choice: 1 Enter value to be pushed into the stack: 50
Operations on Stack
1.Push Element into the Stack 2.Pop Element from the Stack 3.Traverse the Stack 4.Quit Enter your Choice: 3 Stack elements : 50 150 200 100
Operations on Stack
1.Push Element into the Stack 2.Pop Element from the Stack 3.Traverse the Stack 4.Quit Enter your Choice: 2 Element Popped: 50
Operations on Stack
1.Push Element into the Stack 2.Pop Element from the Stack 3.Traverse the Stack 4.Quit Enter your Choice: 3 Stack elements : 150 200 100
Operations on Stack
1.Push Element into the Stack 2.Pop Element from the Stack 3.Traverse the Stack 4.Quit Enter your Choice: 2 Element Popped: 150
Operations on Stack
1.Push Element into the Stack 2.Pop Element from the Stack 3.Traverse the Stack 4.Quit Enter your Choice: 3 Stack elements : 200 100
Operations on Stack
1.Push Element into the Stack 2.Pop Element from the Stack 3.Traverse the Stack 4.Quit Enter your Choice: 1 Enter value to be pushed into the stack: 1010
Operations on Stack
1.Push Element into the Stack 2.Pop Element from the Stack 3.Traverse the Stack 4.Quit Enter your Choice: 3 Stack elements : 1010 200 100
Operations on Stack
1.Push Element into the Stack 2.Pop Element from the Stack 3.Traverse the Stack 4.Quit Enter your Choice: 4
(program exited with code: 1) Press return to continue Sanfoundry Global Education & Learning Series – 1000 C++ Programs.