Write the program for stack using linked list.
#include <bits/stdc++.h>
using namespace std;
struct Node {
int data;
struct Node* link;
};
struct Node* top;
void push(int data) //Insert at beginning
{ struct Node* temp;
temp = new Node();
if (!temp) {
cout << "\nHeap Overflow"; exit(1);
}
temp->data = data;
temp->link = top;
top = temp;
}
int isEmpty()
{ return top == NULL; }
int peek()
{
if (!isEmpty())
return top->data;
else
exit(1);
}
void pop()
{ struct Node* temp;
if (top == NULL) {
cout << "\nStack Underflow" << endl;
exit(1);
}
else {
temp = top;
top = top->link;
temp->link = NULL;
free(temp);
}
}
void display()
{ struct Node* temp;
if (top == NULL) {
cout << "\nStack Underflow";
exit(1);
}
else {
temp = top;
while (temp != NULL) {
cout << temp->data << " ";
temp = temp->link;
} } }
int main()
{ push(11); push(22); push(33); push(44);
display();
cout << "\nTop element is %d\n" << peek();
pop(); pop();
display();
cout << "\nTop element is %d\n" << peek();
return 0;
}