// Insertion in Begin singly linked list.
#include <stdio.h>
#include <stdlib.h>
#include<conio.h>
struct node
{
int num;
struct node *next;
};
typedef struct node NODE;
void traversal(NODE *head){
while(head!=NULL){
printf("%d ", head->num);
head = head->next;
}
}
int main()
{
NODE *start=NULL, *ptr, *current;
int item;
char ch;
do
{
ptr = (NODE *)malloc(sizeof(NODE));
printf("\nEnter the Node : ");
scanf("%d", &item);
ptr->num = item;
ptr->next = NULL;
if (start == NULL)
{
start = ptr;
current = ptr;
}
else
{
current->next = ptr;
current = current->next;
}
printf("\n Do You want to enter the more node press [y] : ");
ch = getche();
} while (ch == 'y');
// before Insertion
printf("\nBefore Insertion : ");
traversal(start);
// insertion
int data;
printf("\nEnter the element : ");
scanf("%d", &data);
ptr = (NODE*)malloc(sizeof(NODE));
ptr->num = data;
ptr->next = start;
start = ptr;
printf("\nAfter Insertion : ");
traversal(start);
return 0;
}
// Insertion in last in singly linked list.
#include<stdio.h>
#include<stdlib.h>
struct node{
int num;
struct node *next;
};
typedef struct node NODE;
int main(){
NODE *start=NULL, *temp, *ptr, *current;
// Make Linked List;
int item;
char ch;
do{
ptr = (NODE *)malloc(sizeof(NODE));
printf("\nEnter the item of Node do you want to Enter : ");
scanf("%d", &item);
ptr->num = item;
ptr ->next = NULL;
if(start==NULL){
start = ptr;
current = ptr;
}
else{
current->next = ptr;
current = current->next;
}
printf("\nDo you want to Enter the More Node then Press [y/Y] : ");
scanf("%s", &ch);
}while(ch=='y' || ch=='Y');
// print the element
printf("\n Before Insertion in Last \n");
temp = start;
while (temp!=NULL)
{
printf("%d ", temp->num);
temp = temp->next;
}
// insert the node at the end;
NODE *p=start;
while (p->next!=NULL)
{
p = p->next;
}
ptr = (NODE *)malloc(sizeof(NODE));
int data;
printf("\nEnter the Item do you want to insert the node : ");
scanf("%d", &data);
ptr->num = data;
p->next=ptr;
ptr->next=NULL;
printf("\n After Insertion in Last \n");
NODE *t;
t = start;
while (t!=NULL)
{
printf("%d ", t->num);
t = t->next;
}
return 0;
}
// All operation of insertion using function.
#include<stdio.h>
#include<stdlib.h>
struct node {
int num;
struct node *next;
};
typedef struct node NODE;
void traves(NODE *head){
while(head!=NULL){
printf("%d ", head->num);
head = head->next;
}
}
void insertBegin(NODE *head, int data){
NODE *ptr;
ptr = (NODE*)malloc(sizeof(NODE));
ptr->num = data;
ptr->next = head;
head = ptr;
printf("\nAfter Insertion \n");
traves(head);
}
void insertLast(NODE *head, int data){
NODE *ptr;
ptr = (NODE*)malloc(sizeof(NODE));
NODE *temp;
temp = head;
ptr -> num = data;
ptr->next = NULL;
while(temp->next!=NULL){
temp = temp->next;
}
temp ->next = ptr;
printf("\nAfter Insertion IN Last\n");
traves(head);
}
void insertPerticualarPos(NODE *head, int data, int loc){
NODE *temp = head, *ptr;
ptr = (NODE*)malloc(sizeof(NODE));
ptr->num = data;
ptr->next = NULL;
int i=1;
while(i<loc-1){
temp = temp->next;
i++;
}
ptr -> next = temp->next;
temp -> next = ptr;
printf("\nAfter insertion at perticular Pos \n");
temp=head;
traves(temp);
}
int main(){
NODE *start=NULL, *ptr, *current;
// create NODE
int item;
char ch;
do
{
// create node
ptr = (NODE*)malloc(sizeof(NODE));
printf("Enter the element : ");
scanf("%d", &item);
ptr -> num = item;
ptr->next = NULL;
if(start==NULL){
start = ptr;
current = ptr;
}
else{
current->next = ptr;
current = current->next;
}
// if want add more node
printf("\nDo You want To add More NODE press[y/Y] : ");
scanf("%s", &ch);
} while (ch=='y' || ch=='Y');
char s;
do
{
int choice;
int data;
printf("\n1.Display\n2.Insert In the Begin\n3.Insert In the Last\n4.Insert in the specified Pos\nSelect Any One \n");
scanf("%d", &choice);
switch (choice)
{
case 1:
traves(start);
break;
case 2:
printf("Enter the data do you want to insert the starting Pos : ");
scanf("%d", &data);
insertBegin(start, data);
break;
case 3:
printf("Enter the data do you want to insert the Last pos : ");
scanf("%d", &data);
insertLast(start, data);
break;
case 4:
printf("Enter the data do you want to insert specified Postition : ");
scanf("%d", &data);
int loc;
printf("\nEnter the position where you want to insert the element : ");
scanf("%d", &loc);
insertPerticualarPos(start, data, loc);
break;
default:
break;
}
printf("\nDo You want to do More Operation press[y/Y] : ");
scanf("%s", &s);
} while (s=='Y' || s=='y');
return 0;
}
/* Insertion and Deletion all operation at the singly linked
list in c programming in one program */
#include<stdio.h>
#include<stdlib.h>
struct node{
int num;
struct node *next;
};
typedef struct node NODE;
NODE *start=NULL, *ptr, *current;
void display();
void create(int item);
void insertion_begin(int item);
void insertion_last(int item);
void insertion_at_pos(int loc, int item);
void deletion_begin();
void deletion_last();
void deletion_at_pos(int loc);
int main(){
int item;
for(int i=1; i<=5; i++){
printf("Enter the item : ");
scanf("%d", &item);
create(item);
}
display(start);
printf("Enter the item new node : ");
scanf("%d", &item);
insertion_begin(item);
printf("\nAfter Insetion\n");
display(start);
insertion_last(item);
printf("\nAfter Insetion\n");
display(start);
insertion_at_pos(3,item);
printf("\nAfter Insetion\n");
display(start);
deletion_begin();
printf("\nAfter deletion\n");
display(start);
deletion_last();
printf("\nAfter deletion\n");
display(start);
deletion_at_pos(3);
printf("\nAfter deletion\n");
display(start);
return 0;
}
void display(NODE *start){
NODE *temp = start;
int i = 1;
while(temp!=NULL){
printf("Element %d : %d\n", i, temp->num);
temp = temp->next;
i++;
}
}
void create(int item){
ptr = (NODE*)malloc(sizeof(NODE));
ptr -> num = item;
ptr -> next = NULL;
if(start==NULL){
start = ptr;
current = ptr;
}
else{
current->next =ptr;
current = current->next;
}
}
void insertion_begin(int item){
ptr = (NODE*)malloc(sizeof(NODE));
ptr -> num = item;
ptr ->next = start;
start = ptr;
}
void insertion_last(int item){
NODE *temp = start;
ptr = (NODE*)malloc(sizeof(NODE));
ptr -> num = item;
ptr ->next = NULL;
while(temp->next!=NULL){
temp = temp->next;
}
temp -> next = ptr;
}
void insertion_at_pos(int loc, int item){
NODE *temp = start;
ptr = (NODE*)malloc(sizeof(NODE));
ptr -> num = item;
ptr -> next = NULL;
int i = 1;
while(i<loc-1){
temp = temp ->next;
i++;
}
NODE *p = temp ->next;
temp -> next = ptr;
ptr -> next = p;
}
void deletion_begin(){
NODE *temp=start->next;
free(start);
start = temp;
}
void deletion_last(){
NODE *temp = start;
while(temp->next->next!=NULL){
temp= temp->next;
}
NODE *p = temp->next;
free(p);
temp->next=NULL;
}
void deletion_at_pos(int loc){
NODE *temp = start;
int i = 1;
while(i<loc-1){
temp = temp->next;
i++;
}
NODE *p = temp->next;
temp->next = p->next;
free(p);
}
Comments
Oops!