Starting Vocational Training From 1-May-2024 Get Detail
#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
"<<"1.Push
"<<"2.Pop
"<<"3.Display
";
cout<<"Make a choice: ";
cin>>n;
switch(n){
case 1:
Node n;
cout<<"Enter details of the element to be pushed :
";
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
";
}
cout<<"Do you want to continue ? : ";
cin>>ch;
}while(ch==Y||ch==y);
return 0;
}