OneCompiler

linked list 2

116

#include <iostream>
using namespace std;
#include<stdlib.h>
struct node
{
int number;
node* next;
};

//Make new node
node* make_new_node(int x)
{
node* p;
p = new node;
p->number = x;
p->next = NULL;
return p;
}
//Order_insert function
node *order_insert(node *p, int x)
{
node *temp, *curr, *prev;
if (p == NULL)
p = make_new_node(x);
else if (x == p->number)
cout << "\n This value is Exist in first node.\n";
else if (x < p->number)
{
temp = make_new_node(x);
temp->next = p;
p = temp;
}
else
{
curr = p;
prev = curr;
while (curr != NULL && x > curr->number)
{
prev = curr;
curr = curr->next;
}
if (curr == NULL)
{
temp = make_new_node(x);
prev->next = temp;
}
else
{
temp = make_new_node(x);
temp->next = curr;
prev->next = temp;
}

}
return p;
}
// if certain value (s) exist in node edit it with a new value (x)
//else edit the last value in last node to x
void edit_node(node* p, int s)
{
int x;
cout << "\n Enter new x value of node: ";
cin >> x;
node* curr;
curr = p;
while (curr->number != s && curr->next != NULL) {
curr = curr->next;
}
curr->number = x;
}
//Display (print) node elements
void display_list(node* p)
{
node* curr;
if (p == NULL)
cout << "No nodes found \n";
else
{cout << "\n Data in the nodes are:\n"; curr = p;
while (curr != NULL)
{
cout << curr->number << "\n"; curr = curr->next;

}

}
}
int main()
{
node* p;
p = NULL;
int x, n, s, data;
cout << "\n Enter x value to make a new node: ";
cin >> x;
p = make_new_node(x);
display_list(p);
cout << "\n Enter number of nodes to create:\n";
cin >> n;
for (int i = 0; i < n; i++)
{
cout << "\n enter data for each node:";
cin >> data;
p = order_insert(p, data);
display_list(p);
}
cout << "\n Enter s value that you want to edit: ";
cin >> s;
edit_node(p, s);
display_list(p);
return 0;

}