Untitled
unknown
plain_text
2 years ago
2.2 kB
10
Indexable
#include <stdio.h>
#include<stdlib.h>
struct node {
int data;
struct node *link;
};
node *head = NULL;
node *ptr = NULL;
void display() {
node *temp = head;
while (temp != NULL) {
printf("%d\t", temp->data);
temp = temp->link;
}
}
void front()
{
node *n4 = new node;
if(n4 == NULL)
printf("Memory Unavailable.");
else
{
n4->link = head;
printf("\nEnter value for the new node: \n");
scanf("%d", &n4->data);
head = n4;
}
}
void end()
{
node *n5 = new node;
if(n5 == NULL)
printf("Memory Unavailable.");
else
{
ptr = head;
while(ptr->link != NULL)
ptr = ptr->link;
ptr->link = n5;
n5->link = NULL;
printf("Enter the value for new node: ");
scanf("%d", &n5->data);
}
}
void middle()
{
node *n6 = new node;
if(n6 == NULL)
printf("Memory Unavailable.");
else
{
int key;
ptr = head;
printf("Enter the key: ");
scanf("%d", &key);
while(ptr->link != NULL)
{
if(ptr->data == key)
{
n6->link = ptr->link;
ptr->link = n6;
printf("Enter a value for the new node: ");
scanf("%d", &n6->data);
break;
}
else
ptr = ptr->link;
}
}
}
int main() {
node *n1 = new node;
n1->data = 10;
n1->link = NULL;
node *n2 = new node;
n2->data = 20;
n2->link = NULL;
node *n3 = new node;
n3->data = 30;
n3->link = NULL;
head = n1;
n1->link = n2;
n2->link = n3;
display();
int ch;
while(1)
{
printf("\n1.Insertion At Front. \n2.Insertion At Middle. \n3.Insertion At End \n4.Exit Operation. \n");
scanf("%d", &ch);
if(ch == 1)
{
front();
display();
}
else if(ch == 2)
{
middle();
display();
}
else if(ch == 3)
{
end();
display();
}
else if(ch == 4)
exit(0);
}
}Editor is loading...