Bunthorn
2
Q:

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; 
} 
1

New to Communities?

Join the community