Untitled
unknown
plain_text
10 months ago
2.6 kB
7
Indexable
#include<stdio.h>
#include<stdlib.h>
struct node
{
int data1;
char data2;
struct node* next;
};
struct node* head;
void createlist(int n);
void display();
void insert_beg();
void insert_end();
void insert_at_anyposition();
int main()
{
int num;
printf("Enter Total Number of Node\n");
scanf("%d",&num);
createlist(num);
printf("Your Linked List is given below\n");
display();
insert_beg();
display();
insert_end();
display();
insert_at_anyposition();
display();
return 0;
}
void createlist(int n)
{
struct node*fnode,*newnode;
int i = 1;
int val;
char car;
printf("Enter value for node %d:",i);
scanf("%d %c",&val,&car);
fnode = (struct node*)malloc(sizeof(struct node));
fnode->data1 = val;
fnode->data2 = car;
fnode->next = NULL;
head = fnode;
for(int i = 2;i<=n;i++)
{
printf("Enter value for node %d:",i);
scanf("%d %c",&val,&car);
newnode = (struct node*)malloc(sizeof(struct node));
newnode->data1 = val;
newnode->data2 = car;
fnode->next = newnode;
newnode->next = NULL;
fnode = newnode;
}
}
void display()
{
struct node* temp;
temp = head;
while(temp != NULL)
{
printf("%d %c\n",temp->data1,temp->data2);
temp = temp->next;
}
}
void insert_beg()
{
struct node *newnode;
newnode = (struct node*)malloc(sizeof(struct node));
printf("Enter Data of the node to insert at beginning\n");
scanf("%d %c",&newnode->data1,&newnode->data2);
newnode->next = head;
head = newnode;
}
void insert_end()
{
struct node* tail = head;
while(tail->next != NULL)
{
tail = tail->next;
}
struct node *newnode;
newnode = (struct node*)malloc(sizeof(struct node));
printf("Enter Data of the node to insert at End\n");
scanf("%d %c",&newnode->data1,&newnode->data2);
newnode->next = NULL;
tail->next = newnode;
tail = newnode;
}
void insert_at_anyposition()
{
printf("Enter Position to insert new node\n");
int pos;
scanf("%d", &pos);
printf("Enter Data of the node to insert at this position\n");
struct node *newnode;
newnode = (struct node *)malloc(sizeof(struct node));
scanf("%d %c", &newnode->data1, &newnode->data2);
struct node *temp = head;
for (int i = 1; i <pos-1;i++)
{
temp = temp->next;
}
newnode->next = temp->next;
temp->next = newnode;
}
Editor is loading...
Leave a Comment