Home » Code snippets » C/C++ Code Snippets

C++ - STACK Implementation with Linked List using C++ program

In this code snippet we will learn how to implement STACK with Linked List using c++ program.

In this example we will implement STACK with Linked List using C++ program, here we will implement PUSH, POP, and TRAVERSE (Display) Operations for STACK using Singly Linked List.

C++ Code Snippet - STACK Implementation with Linked List using C++ Program

#include <iostream>
#include <string.h>
 
using namespace std;
 
struct Node{
    int stu_no;
    char stu_name[50];
    int p;
    Node *next;
};
Node *top;
 
class stack{
 
public:
    void push(int n,char name[],int perc);
    void pop();
    void display();
};
 
void stack :: push(int n,char name[],int perc)
{
    struct Node *newNode=new Node;
    //fill data part
    newNode->stu_no=n;
    newNode->p=perc;
    strcpy(newNode->stu_name,name);
    //link part
    newNode->next=top;
    //make newnode as top/head
    top=newNode;
}
void stack ::pop()
{
    if(top==NULL){
        cout<<"List is empty!"<<endl;
        return;
    }
    cout<<top->stu_name<<" is removed."<<endl;
    top=top->next;
}
void stack:: display()
{
if(top==NULL){
        cout<<"List is empty!"<<endl;
        return;
    }
    struct Node *temp=top;
    while(temp!=NULL){
        cout<<temp->stu_no<<" ";
        cout<<temp->stu_name<<" ";
        cout<<temp->p<<" ";
        cout<<endl;
        temp=temp->next;
    }
    cout<<endl;
}
int main(){
 
    stack s;
    char ch;
    do{
    int n;
     
    cout<<"ENTER CHOICE\n"<<"1.Push\n"<<"2.Pop\n"<<"3.Display\n";
    cout<<"Make a choice: ";
    cin>>n;
     
    switch(n){
        case 1:  
            Node n;
            cout<<"Enter details of the element to be pushed : \n";
            cout<<"Roll Number : ";
            cin>>n.stu_no;
            cout<<"Enter Name: ";
            std::cin.ignore(1);
            cin.getline(n.stu_name,50);
            cout<<"Enter Percentage: ";
            cin>>n.p;
             
            //push data into the stack
            s.push(n.stu_no,n.stu_name,n.p);
            break;
         
        case 2 : 
            //pop data from stack
            s.pop();
            break;
         
        case 3 : 
            //display data
            s.display();
            break;
             
        default : 
            cout<<"Invalid Choice\n";
    }
     
    cout<<"Do you want to continue ? : ";
    cin>>ch;
 
    }while(ch=='Y'||ch=='y');
     
    return 0;
}
Advertisement

Output

ENTER CHOICE
1.Push
2.Pop 
3.Display 
Make a choice: 1
Enter details of the element to be pushed : 
Roll Number : 101 
Enter Name: PRIYA 
Enter Percentage: 99
Do you want to continue ? : y 
ENTER CHOICE
1.Push
2.Pop 
3.Display 
Make a choice: 1
Enter details of the element to be pushed : 
Roll Number : 102 
Enter Name: Mahak 
Enter Percentage: 95
Do you want to continue ? : y 
ENTER CHOICE
1.Push
2.Pop 
3.Display 
Make a choice: 3
102 Mahak 95
101 PRIYA 99

Do you want to continue ? : y 
ENTER CHOICE
1.Push
2.Pop 
3.Display 
Make a choice: 2
Mahak is removed. 
Do you want to continue ? : y 
ENTER CHOICE
1.Push
2.Pop 
3.Display 
Make a choice: 3
101 PRIYA 99

Do you want to continue ? : n 
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT


Top MCQs

Comments and Discussions!




Languages: » C » C++ » C++ STL » Java » Data Structure » C#.Net » Android » Kotlin » SQL
Web Technologies: » PHP » Python » JavaScript » CSS » Ajax » Node.js » Web programming/HTML
Solved programs: » C » C++ » DS » Java » C#
Aptitude que. & ans.: » C » C++ » Java » DBMS
Interview que. & ans.: » C » Embedded C » Java » SEO » HR
CS Subjects: » CS Basics » O.S. » Networks » DBMS » Embedded Systems » Cloud Computing
» Machine learning » CS Organizations » Linux » DOS
More: » Articles » Puzzles » News/Updates

© https://www.includehelp.com some rights reserved.