Currently this is my assignment question . I having problem at "modify_data" function which do not replace new input_message but remain the old one . Please help me with this , thank you Code: #include <iostream> #include <string> #include<conio.h> using namespace std; class Stack //declaration of class { struct Input_Node { string Input_Message; int Receiver_Num; int Sender_Num; int Priority; int size; Input_Node *next; Input_Node *item; } *New_Input_Node , *Head , *Tail , *Ptr , *Temp , *Previous , *Current ; public: Stack() { Head = NULL; } void add_data(string Input_Message,int Receiver_Num, int Sender_Num,int Priority); void delete_data(string Input_Message,int Receiver_Num, int Sender_Num,int Priority); void modify_data(string Input_Message,int Receiver_Num, int Sender_Num,int Priority); void display_data( ); void load_data(); void sort_data(); }; void Stack :: display_data() { Temp = Head; while(Temp != NULL){ cout <<"Message : "<< Temp->Input_Message<<endl; cout <<"Sender: "<< Temp->Sender_Num<<endl; cout <<"Receiver : "<< Temp->Receiver_Num<<endl; cout <<"Priority :"<< Temp->Priority<<endl; Temp = Temp -> next; } delete Temp; } //push data void Stack :: add_data( string Input_Message,int Receiver_Num, int Sender_Num,int Priority) { New_Input_Node =new Input_Node; New_Input_Node->Input_Message = Input_Message; New_Input_Node->Receiver_Num = Receiver_Num ; New_Input_Node->Sender_Num = Sender_Num ; New_Input_Node->Priority = Priority ; New_Input_Node ->next=Head; Head=New_Input_Node; } void Stack :: delete_data ( string Input_Message,int Receiver_Num, int Sender_Num,int Priority) { int position , i ; cin >> position; if ( position == 1) { Ptr = Head ; Ptr->Input_Message = Input_Message; Ptr->Receiver_Num = Receiver_Num ; Ptr->Sender_Num = Sender_Num ; Ptr->Priority = Priority ; Head=Head->next; delete Ptr; } else { Previous = Head; int i = 1; while (i<position) { Current = Previous ->next; Previous->next = Current->next; delete Current; i++; } } } void Stack :: modify_data(string Input_Message,int Receiver_Num, int Sender_Num,int Priority) { int position , i ; cout<<"Please enter position : "<<endl; cin >> position; if(position == 1) { int number ; cout<<"Please Enter Which To be Modify :"<<endl; cout<<"1. Message "<<endl; cout<<"2. Receiver Number"<<endl; cout<<"3. Sender Number"<<endl; cout<<"4. Priority "<<endl; cin>>number; if(number == 1) { i=1; New_Input_Node = Head; cout<<"Please enter new message: "<<endl; cin>>Input_Message; while(i<position) { New_Input_Node =new Input_Node; New_Input_Node->Input_Message = Input_Message; New_Input_Node = New_Input_Node ->next; i++; } } else cout<<"Invalid number , please enter again : "<<endl; } else cout<<"Invalid position , please enter again : "<<endl; } int main() { Stack c1; int choice; char option; string Input_Message; int Receiver_Num; int Sender_Num; int Priority; do { system("cls"); cout<<"----------Menu------------"<<endl; cout<<"1.Addition "<<endl; cout<<"2.Deletion "<<endl; cout<<"3.Modification "<<endl; cout<<"Enter Your choice ?"<<endl; cin>>choice; switch(choice) { case 1 : cout<<"Enter Message: "<<endl; cin>>Input_Message; cout<<"Enter Receiver Number :"<<endl; cin>>Receiver_Num; cout<<"Enter Sender Number :"<<endl; cin>>Sender_Num; cout<<"Enter Priority - 1 for high and 0 for low : "<<endl; cin>>Priority; c1.add_data(Input_Message , Receiver_Num , Sender_Num , Priority); cout<<"Message has been added !"<<endl; break; case 2: c1.display_data(); cout<<"Please enter position to be deleted : "<<endl; c1.delete_data(Input_Message,Receiver_Num, Sender_Num,Priority); c1.display_data(); break; case 3: c1.display_data(); c1.modify_data(Input_Message , Receiver_Num , Sender_Num , Priority); c1.display_data(); break; } cout<<"Do you want to continue <Y/N> ?"; cin>>option; }while(option=='y' || option=='Y'); getch(); }