Skip to main content
Doubly Linked List to implement Insertions,Deletions,Traversal,Splitting,Merging,Counting Node & Sorting in C program.
CODING:
#include<stdio.h>
#include<conio.h>
struct node
{
struct node *next;
int data;
struct node *prev;
};
int flag=0;
struct node *splitlist;
struct node *start=NULL;
struct node *create(struct node *);
struct node *display(struct node *);
struct node *insert_beg(struct node *);
struct node *insert_before(struct node *start);
struct node *insert_node(struct node *start);
struct node *insert_after(struct node *start);
struct node *insert_end(struct node *);
struct node *delete_beg(struct node *);
struct node *delete_node(struct node *start);
struct node *delete_end(struct node *);
struct node *sort(struct node *);
struct node *split(struct node *);
struct node *merge(struct node *);
struct node *count_op(struct node *);
void main()
{
int ch;
clrscr();
printf("\nC R E A T E  THE LIST...");
start=create(start);
do
{
printf("\n -------------------------");
printf("\n| 1.OPEN THE LIST        |");
printf("\n| 2.ADD AT FIRST IN LIST |");
printf("\n| 3.BEFORE ADD   IN LIST |");
printf("\n| 4.ADD AT GIVEN POSITION|");
printf("\n| 5.AFTER  ADD   IN LIST |");
printf("\n| 6.ADD AT LAST  IN LIST |");
printf("\n| 7.DELETE FIRST IN LIST |");
printf("\n| 8.DELETE GIVEN IN LIST |");
printf("\n| 9.DELETE LAST  IN LIST |");
printf("\n|10.SORTING      IN LIST |");
printf("\n|11.SPLINTING    IN LIST |");
printf("\n|12:MERGING      IN LIST |");
printf("\n|13.COUNTING  OPERATIONS |");
printf("\n| 0.EXIT                 |");
printf("\n -------------------------");
printf("\nENTER THE CHOICE:");
scanf("%d",&ch);
switch(ch)
{
 case 1:
 start=display(start);
 break;
 case 2:
 start=insert_beg(start);
 printf("\n->First Record Added.");
 break;
 case 3:
 start=insert_before(start);
 printf("\n->Before Record Added.");
 break;
 case 4:
 start=insert_node(start);
 printf("\n->Record Added.");
 break;
 case 5:
 start=insert_after(start);
 printf("\n->After Record Added.");
 break;
 case 6:
 start=insert_end(start);
 printf("\n->Last Record Added.");
 break;
 case 7:
 start=delete_beg(start);
 printf("\n->First Record Deleted.");
 break;
 case 8:
 start=delete_node(start);
 printf("\n->Record Deleted.");
 break;
 case 9:
 start=delete_end(start);
 printf("\n->Last Record Deleted.");
 break;
 case 10:
 start=sort(start);
 printf("\n->Your List is Soretd.");
 break;
 case 11:
 start=split(start);
 break;
 case 12:
 start=merge(start);
 break;
 case 13:
 start=count_op(start);
 break;
 case 0:
 exit(0);
 break;
 default:
 printf("->INVALID ENTER NUMBER,TRY AGAIN!");
}
}while(ch!=0);
getch();
}
struct node *create(struct node *start)
{
struct node *new_node;
int num,n;
printf("\nHOW MANY ENTER THE RECORD IN LIST:");
scanf("%d",&n);
do
{
printf("Enter the number:");
scanf("%d",&num);
 if(start==NULL)
 {
  start=(struct node *)malloc(sizeof(struct node *));
  start->prev=NULL;
  start->data=num;
  start->next=NULL;
  n--;
 }
 else
 {
  new_node=(struct node *)malloc(sizeof(struct node *));
  new_node->prev=NULL;
  new_node->data=num;
  new_node->next=start;
  start->prev=new_node;
  start=new_node;
  n--;
 }
}while(0<n);
printf("->Your List Saved.");
return start;
}
struct node *display(struct node *start)
{
struct node *ptr;
ptr=start;
printf("LIST OPEN...");
while(ptr!=NULL)
{
 printf("\n%d",ptr->data);
 ptr=ptr->next;
}
if(flag==1)
{
ptr=splitlist;
printf("\n->SPLITTED LIST.");
while(ptr!=NULL)
 {
 printf("\n %d",ptr->data);
 ptr=ptr->next;
 }
printf("\n->ADD,DELETE,SORT ARE NOT WORK IN 'SPLITTED LIST'.");
}
return start;
}
struct node *insert_beg(struct node *start)
{
struct node *new_node;
int num;
printf("Enter The Number:");
scanf("%d",&num);
new_node=(struct node *)malloc(sizeof(struct node *));
start->prev=new_node;
new_node->prev=NULL;
new_node->data=num;
new_node->next=start;
start=new_node;
return start;
}
struct node *insert_before(struct node *start)
{
struct node *new_node,*ptr;
int num,n;
ptr=start;
printf("\nEnter The Before Number of Added In List:");
scanf("%d",&n);
if(ptr->data==n)
{
start=insert_beg(start);
}
else
{
printf("Enter The Number:");
scanf("%d",&num);
new_node=(struct node *)malloc(sizeof(struct node *));
new_node->data=num;
while(ptr->data!=n)
ptr=ptr->next;
new_node->next=ptr;
ptr->prev->next=new_node;
ptr->prev=new_node;
}
return start;
}
struct node *insert_node(struct node *start)
{
struct node *new_node,*ptr;
int num,n;
ptr=start;
printf("Enter The Position You Want To Added:");
scanf("%d",&n);
if(n==1)
{
start=insert_beg(start);
}
else
{
printf("Enter The Number:");
scanf("%d",&num);
new_node=(struct node *)malloc(sizeof(struct node *));
new_node->data=num;
while(2<n)
{
 ptr=ptr->next;
 n--;
}
new_node->prev=ptr;
new_node->next=ptr->next;
ptr->next->prev=new_node;
ptr->next=new_node;
}
return start;
}
struct node *insert_after(struct node *start)
{
struct node *new_node,*ptr;
int num,n;
printf("Enter The Number:");
scanf("%d",&num);
printf("\nEnter The After Number of Added In List:");
scanf("%d",&n);
new_node=(struct node *)malloc(sizeof(struct node *));
new_node->data=num;
ptr=start;
while(ptr->data!=n)
ptr=ptr->next;
new_node->prev=ptr;
new_node->next=ptr->next;
ptr->next->prev=new_node;
ptr->next=new_node;
return start;
}
struct node *insert_end(struct node *start)
{
int num;
struct node *ptr,*new_node;
ptr=start;
printf("Enter The Number:");
scanf("%d",&num);
new_node=(struct node *)malloc(sizeof(struct node *));
new_node->data=num;
while(ptr->next!=NULL)
ptr=ptr->next;
ptr->next=new_node;
new_node->next=NULL;
return start;
}
struct node *delete_beg(struct node *start)
{
struct node *ptr;
ptr=start;
start=start->next;
free(ptr);
return start;
}
struct node *delete_node(struct node *start)
{
struct node *ptr,*preptr;
int num;
printf("Enter The Number:");
scanf("%d",&num);
ptr=start;
if(ptr->data==num)
{
 start=delete_beg(start);
 return start;
}
else
 while(ptr->data!=num)
 {
 preptr=ptr;
 ptr=ptr->next;
 }
preptr->next=ptr->next;
free(ptr);
return start;
}
struct node *delete_end(struct node *start)
{
struct node *ptr,*preptr;
ptr=start;
while(ptr->next!=NULL)
{
 preptr=ptr;
 ptr=ptr->next;
}
preptr->next=NULL;
free(ptr);
return start;
}
struct node *sort(struct node *start)
{
struct node *ptr1,*ptr2;
int temp;
ptr1=start;
while(ptr1->next!=NULL)
{
 ptr2=ptr1->next;
 while(ptr2!=NULL)
 {
  if(ptr1->data>ptr2->data)
  {
   temp=ptr1->data;
   ptr1->data=ptr2->data;
   ptr2->data=temp;
  }
   ptr2=ptr2->next;
 }
ptr1=ptr1->next;
}
return start;
}
struct node *split(struct node *start)
{
int i;
struct node *s;
if(flag==0)
{
printf("Enter The Position of Split:");
scanf("%d",&i);
s=start;
while(i>1)
{
s=s->next;
i--;
}
splitlist=s->next;
splitlist->prev=NULL;
s->next=NULL;
s=start;
flag=1;
printf("\n->Your List is Splitted.");
}
else{printf("SORRY,Your List is Already Splitted");}
return start;
}
struct node *merge(struct node *start)
{
struct node *ptr;
ptr=start;
if(flag==0)
{
printf("SORRY,You have note Splitted List.");
}
else
{
while(ptr->next!=NULL)
ptr=ptr->next;
ptr->next=splitlist;
splitlist->prev=ptr;
flag=0;
printf("->Your List Merged.");
}
return start;
}
struct node *count_op(struct node *start)
{
struct node *ptr;
int odd=0,even=0,count=0;
ptr=start;
while(ptr!=NULL)
 {
  if(ptr->data%2==0)
   {
    printf("\nEVEN:%d",ptr->data);even++;
   }
  else
   {
    printf("\nODD :%d",ptr->data);odd++;
   }
 ptr=ptr->next;
 count++;
 }
printf("\nEVEN  Number of Nodes:%d",even);
printf("\nODD   Number of Nodes:%d",odd);
printf("\nTotal Number Of Nodes:%d",count);
return start;
}

Comments

Popular posts from this blog

BCA SEM 5 SHELL SCRIPT PROGRAM

1  Write a shell script to execute following commands 1. Sort file abc.txt and save this sorted file in xyz.txt 2. Give an example of : To execute commands together without affecting result of each other. 3. How to print “this is a three –line 1. Text message” 4. Which command display version of the UNIX? 5. How would u get online help of cat command? echo “sorting the file” sort abc.txt > xyz.txt echo “executing two commands” who ; ls echo “this is \n a three-line \n Text message” # use -e option if required echo “The version is `uname -a`” echo “Help of cat command” man cat 2  Write a shell script to execute following commands 1. How would u display the hidden files? 2. How delete directory with files? 3. How would user can do interactive copying? 4. How would user can do interactive deletion of files? 5. Explain two functionality of “mv” command with example? echo “1. How would u display the hidden files” echo “2. How delete directory with files” echo “3. How

C++

I NTRODUCTION TO OOP,CLASSES & OBJECTS 1. Use of scope Resolution of Operators. 2. Define a function outside a using scope resolution operators. 3. Write a program to calculate the area of circle, rectangle and square using function overloading. 4. Write a program to calculate the area of circle, rectangle and square using with class & object. 5. Write a program to demonstrate the use of returning a reference variable. 6. Create a class student,stores the details about name,roll no,marks of 5 subject,1.get function accept value of data members,2. display function to display,3.total function to return total of 5 subjects marks. 7. Create function power() in c++. & Create function power() in c++ and default argument. 8. Write a C++ program to swap the value of private data members from 2 different classes. 9. Write a program to illustrate the use of this pointer. 10. An election is contested by five candidates. The candidates are numbered 1 to 5 and the voting is do

USER- DEFINED FUNCTIONS

1. Write a program to calculate average temperature of five days.Create temp() function . 2. Write a program that uses recursive function fibo() thatgenerates a Fibonacci series containing N elements. 3. Write a program that uses a recursive function fact() that findsthe factorial of a given number N. 4. Program to find if the given no. is prime or not. The functionshould accept the number as argument and return if the no. isprime or not. 5. Write a function that accepts an array of integer values. Thefunction should find the number which divides all the othernumbers. 6. Write a user-defined function to perform Square of a number 7. Write a user-defined function to perform Area of a number 8. Write a user-defined function to perform Reverse the number 9. Write a program that uses a function to check whether anentered three digit number is palindrome or not. 10. Write a program to calculate the result of following with recursive calls offunction. 11. Simple interset with usin