1.Ascending Priority Queue implementation in java
program:
import java.io.*;
class Node
{
int data;
int priority;
Node link;
Node(int priority,int data)
{
this.data=data;
this.priority=priority;
}
}
class PriorityQueue
{
Node front;
BufferedReader br;
void creation()
{
int a,b;
boolean ch=true;
Node newnode;
do
{
try
{
System.out.print("enter the data for newnode : ");
a=Integer.parseInt(br.readLine());
System.out.println();
System.out.print("enter the priority for new node : ");
b= Integer.parseInt(br.readLine());
System.out.println();
newnode=new Node(b,a);
if(front==null||newnode.priority<front.priority)
{
newnode.link=front;
front=newnode;
}
else
{
Node temp=front;
while(temp.link!=null&&newnode.priority>=temp.link.priority)
temp=temp.link;
newnode.link=temp.link;
temp.link=newnode;
}
System.out.println("do u want to add one mode node [true/false] : ");
ch=Boolean.parseBoolean(br.readLine());
}
catch(Exception e)
{
System.out.println(e);
}
}
while(ch);
}
void display()
{
Node temp=front;
if(temp==null)
System.out.println("list is empty");
else
{
while(temp!=null)
{
System.out.println(temp.priority+"--->"+temp.data);
temp=temp.link;
}
}
}
void delete()
{
Node temp=front;
if(temp==null)
System.out.println("list is empty");
else
{
System.out.println("deleted element is:" + front.data+" having a priority:"+front.priority);
front=front.link;
temp=null; /*whenever you are assining null to a reference of a class ,then the object associated with that reference is immediately deleted by the garbage collector due to automatic memory management */
display();
}
}
public static void main(String [] args)
{
int ch;
PriorityQueue pq=new PriorityQueue();
pq.br=new BufferedReader(new InputStreamReader(System.in));
try
{
while(true)
{
System.out.println("1.creation");
System.out.println("2.display");
System.out.println("3.delete");
System.out.println("4.exit");
System.out.print("Enter your choice : ");
ch=Integer.parseInt(pq.br.readLine());
System.out.println();
switch(ch)
{
case 1:
pq.creation();
break;
case 2:
pq.display();
break;
case 3:
pq.delete();
break;
case 4:
return;
default:
System.out.println("invalid choice...try again ");
}
}
}
catch(Exception e)
{
System.out.println(e);
}
}
}
2.Stack implementation using single linked list in c language
program:
#include<stdio.h>
#include<conio.h>
#include<alloc.h>
void display();
typedef struct stack
{
int ele;
stack *link;
} node;
node *top=NULL;
void push(int x)
{
node *current=NULL;
current=(node *)malloc(sizeof(node));
if(current==NULL)
{
printf("\nmemory is not allocated properly");
return;
}
current->ele=x;
current->link=top;
top=current;
}
void length()
{
node *temp;
int len=0;
temp=top;
while(temp!=NULL)
{
++len;
temp=temp->link;
}
printf("\n the length of the stack is : %d",len);
}
void pop()
{
node *temp;
if(top==NULL)
printf("\n stack is empty ");
else
{
temp=top;
top=top->link;
printf("\n the deleted element is :%d\n",temp->ele);
free(temp);
}
}
void topmost()
{
if(top==NULL)
printf("\nstack is empty");
else
printf("top most element is : %d",top->ele);
}
void display()
{
if(top==NULL)
printf("\n stack is empty ");
else
{
node *temp;
temp=top;
printf("\n the stack elements are:");
while(temp!=NULL)
{
printf("%d<---",temp->ele);
temp=temp->link;
}
}
}
void main()
{
int i,ch;
clrscr();
ab:
printf("\n1.push\n2.pop\n3.topmost\n4.display\n5.length of stack\n6.exit\nenter your choice:");
scanf("%d",&i);
switch(i)
{
case 1:
printf("\n enter the element that you want to insert into d stack :");
scanf("%d",&ch);
push(ch);
break;
case 2:
pop();
break;
case 3:
topmost();
break;
case 4:
display();
break;
case 5:
length();
break;
case 6:
return;
default:
printf("\ninvalid choice...try again..");
}
goto ab;
}
3.implementation of insertion sorting through single linked list in c language
program:
#include<stdio.h>
#include<conio.h>
#include<malloc.h>
struct node
{
int data;
struct node *link;
};
struct node *first=NULL,*new,*temp;
void creation()
{
int data;
do
{
printf("enter the data of node which you want to sort :");
scanf("%d",&data);
new=(struct node*)malloc(sizeof(struct node));
new->data=data;
new->link=NULL;
if(first==NULL || new->data < first->data)
{
new->link=first;
first=new;
}
else
{
temp=first;
while(temp->link!=NULL&&new->data>=temp->link->data)
temp=temp->link;
new->link=temp->link;
temp->link=new;
}
printf("\n do u want to add one more node[1/0] : ");
scanf("%d",&data);
}while(data);
}
void display()
{
if(first==NULL)
{
printf("\n list is empty... nothing to display");
}
else
{
temp=first;
printf("\n sorted list is :\n");
while(temp!=NULL)
{
printf("%d-->",temp->data);
temp=temp->link;
}
}
}
int main()
{
creation();
display();
getch();
return 0;
}
4.binary search implementation in c language using arrays
program:
#include<stdio.h>
#include<conio.h>
int main()
{
int i,key,a[]={1,5,9,11,23,43,56,59,78,99},l=0,h=9,mid;
printf("enter a values to search:");
scanf("%d",&key);
while(l<=h)
{
mid=(l+h)/2;
if(a[mid]==key)
{
printf("search element is found at %d location",mid);
getch();
//exit(0);
return;
}
a[mid]>key?(h=mid-1):(l=h+1);
}
printf("search element is not found");
getch();
return 0;
}
5.implementation of bubblesort in c language using arrays
program:
//bubble sorting
#include<stdio.h>
#include<conio.h>
int main()
{
int i,j,a[10],n,t;
printf("enter the number of elements so u want to sort:");
scanf("%d",&n);
printf("enter the elements of the array:");
for(i=0;i<n;i++)
scanf("%d",&a[i]);
printf("array before sorting\n");
for(i=0;i<n;i++)
printf("%d\t",a[i]);
for(i=0;i<n;i++){
for(j=0;j<n-i;j++){
if(a[i]<a[j])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
}
printf("array after sorting\n");
for(i=0;i<n;i++)
printf("%d\t",a[i]);
getch();
return 0;
}
6.implementation of linearsearch using arrays in c language
program:
#include<stdio.h>
#include<conio.h>
int main()
{
int key,i,a[]={11,3,56,78,93,45,26,28,6,71};
printf("enter a values to search:");
scanf("%d",&key);
for(i=0;i<=9;i++)
{
if(a[i]==key)
break;
}
if(i==10)
printf("search element is not found");
else
printf("search element is found at %d location",i+1);
getch();
return 0;
}
7.implementation of stack using arrays in c language
program:
#include<stdio.h>
#include<conio.h>
#define max 5
int stack[max],ele,top;
void push();
void pop();
void display();
void topelement();
int main()
{
char ch;
top=-1;
printf("1.push\n2.pop\n3.display\n4.topelement\n5.end\nenter your choice:");
scanf("%d",&ele);
do
{
switch(ele)
{
case 1:
push();
break;
case 2:
pop();
break;
case 3:
display();
break;
case 4:
topelement();
break;
case 5:
exit(0);
break;
}
printf("\ndo u want to perform more stack operations[y/n]:");
ch=_getch();
if(ch=='y')
{
printf("\n1.push\n2.pop\n3.display\n4.topelement\n5.end\nenter your choice:");
scanf("%d",&ele);
}
}
while(ch=='y');
_getch();
return 0;
}
void push()
{
if(top==max-1)
{
printf("stack is full cannot insert anymore\n");
return;
}
else
{
printf("enter the element do u want to insert:");
scanf("%d",&ele);
top++;
stack[top]=ele;
}
}
void pop()
{
if(top==-1)
{
printf("stack is empty..no elements to delete\n");
return;
}
else
{
top--;
printf("deleted element from the stack is : %d",stack[top+1]);
}
}
void display()
{
int i;
if(top==-1)
{
printf("stack is empty..no elements to display\n");
return;
}
else
{
printf("the elememts of the stack are : ");
for(i=0;i<=top;i++)
printf("%d\t",stack[i]);
}
}
void topelement()
{
if(top==-1)
{
printf("stack is empty\n");
return;
}
else
printf("the top most element of the stack is : %d",stack[top]);
}
8.implementation of circular queue using arrays in c language
program:
#include<stdio.h>
#include<conio.h>
#include<process.h>
#define MAX 5
int queue[MAX],front=0,rear=0;
void insertion()
{
if(front==(rear+1)%MAX)
printf("\n queue is full..cannot insert ");
else
{
rear=(rear+1)%MAX;
printf("\n Enter the element to insert in the queue : ");
scanf("%d",&queue[rear]);
}
}
void deletion()
{
if(front==0&&rear==0)
printf("\n queue is empty...nothing to delete ");
else
{
printf("\n deleted element is : %d ",queue[front]);
front=(front+1)%MAX;
}
if(front==rear)
{
front=0;
rear=0;
}
}
void display()
{
int i;
if(front==0&&rear==0)
printf("\n queue is empty...nothing to display ");
else
{
if(front==0)
front++;
for(i=front;i!=rear;i=(i+1)%MAX)
{
printf("%d ",queue[i]);
}
printf("%d ",queue[i]);
}
}
void length()
{
int length=0,i;
if(front==0&&rear==0)
length=0;
else
{
for(i=front;i!=rear;i=(i+1)%MAX)
length++;
}
printf("\n length of the queue is : %d",length);
}
void main()
{
int ch;
clrscr();
while(1)
{
printf("\n 1.insertion\n 2.deletion\n 3.display\n 4.length\n 5.exit");
printf("\n Enter your choice :");
scanf("%d",&ch);
switch(ch)
{
case 1:
insertion();
break;
case 2:
deletion();
break;
case 3:
display();
break;
case 4:
length();
break;
case 5:
exit(0);
default:
printf("\n invalid choice...try again");
}
}
}
9.implementation of single linked list in c language
program:
#include<stdio.h>
#include<conio.h>
#include<process.h>
#include<stdlib.h>
typedef struct node
{
int data;
struct node *link;
}NODE;
NODE *first=NULL,*last,*temp,*newnode;
void creation()
{
int ch;
do
{
newnode=(NODE*)malloc(sizeof(NODE));
newnode->link=NULL;
printf("\n enter the data of the node : ");
scanf("%d",&newnode->data);
if(first==NULL)
{
first=newnode;
}
else
{
last->link=newnode;
}
last=newnode;
printf("\n do u want to add one more node [1/0] : ");
scanf("%d",&ch);
}
while(ch==1);
}
void insertion()
{
int ch,data;
printf("\n 1.at first \n 2.at middle \n 3.at end ");
printf("\n enter your choice :");
scanf("%d",&ch);
newnode=(NODE *)malloc(sizeof(NODE));
newnode->link=NULL;
printf("\n enter the data for the new node :");
scanf("%d",&newnode->data);
switch(ch)
{
case 1:
newnode->link=first;
first=newnode;
break;
case 2:
printf("\n enter the data of the node after which you want to insert :");
scanf("%d",&data);
temp=first;
while(temp->data==data)
temp=temp->link;
newnode->link=temp->link;
temp->link=newnode;
break;
case 3:
temp=first;
while(temp->link!=NULL)
temp=temp->link;
temp->link=newnode;
last=newnode;
break;
default:
printf("\n invalid choice ");
free(newnode);
}
}
void deletion()
{
int ch,data;
NODE *temp1;
if(first==NULL)
printf("\n list is empty ");
else
{
printf("\n1.first node \n2.middle node \n3.ending node ");
printf("\n enter your choice:");
scanf("%d",&ch);
switch(ch)
{
case 1:
temp=first;
printf("\n deleted element is : %d ",first->data);
first=first->link;
free(temp);
break;
case 2:
printf("\n enter the data of the node that you want to delete : ");
scanf("%d",&data);
temp=first;
while(temp->link->data!=data)
temp=temp->link;
temp1=temp->link;
temp->link=temp->link->link;
free(temp1);
break;
case 3:
temp=first;
while(temp->link->link!=NULL)
temp=temp->link;
printf("\n deleted element is : %d ",temp->link->data);
temp1=temp->link;
temp->link=NULL;
free(temp1);
break;
default:
printf("\ninvalid choice");
}
}
}
void length()
{
int l=0;
temp=first;
while(temp!=NULL)
{
temp=temp->link;
l++;
}
printf("\n length of the list is : %d",l);
}
void display()
{
temp=first;
if(temp==NULL)
printf("\n list is empty...nothing to display ");
else
{
printf("\n");
while(temp!=NULL)
{
printf("%d-->",temp->data);
temp=temp->link;
}
}
}
void main()
{
int ch;
clrscr();
while(1)
{
printf("\n 1.creation \n 2.insertion \n 3.deletion \n 4.display \n 5.length");
printf("\n 6.exit \n Enter your choice :");
scanf("%d",&ch);
switch(ch)
{
case 1:
creation();
break;
case 2:
insertion();
break;
case 3:
deletion();
break;
case 4:
display();
break;
case 5:
length();
break;
case 6:
exit(0);
default:
printf("\ninvalid choice\n");
}
}
}
program:
import java.io.*;
class Node
{
int data;
int priority;
Node link;
Node(int priority,int data)
{
this.data=data;
this.priority=priority;
}
}
class PriorityQueue
{
Node front;
BufferedReader br;
void creation()
{
int a,b;
boolean ch=true;
Node newnode;
do
{
try
{
System.out.print("enter the data for newnode : ");
a=Integer.parseInt(br.readLine());
System.out.println();
System.out.print("enter the priority for new node : ");
b= Integer.parseInt(br.readLine());
System.out.println();
newnode=new Node(b,a);
if(front==null||newnode.priority<front.priority)
{
newnode.link=front;
front=newnode;
}
else
{
Node temp=front;
while(temp.link!=null&&newnode.priority>=temp.link.priority)
temp=temp.link;
newnode.link=temp.link;
temp.link=newnode;
}
System.out.println("do u want to add one mode node [true/false] : ");
ch=Boolean.parseBoolean(br.readLine());
}
catch(Exception e)
{
System.out.println(e);
}
}
while(ch);
}
void display()
{
Node temp=front;
if(temp==null)
System.out.println("list is empty");
else
{
while(temp!=null)
{
System.out.println(temp.priority+"--->"+temp.data);
temp=temp.link;
}
}
}
void delete()
{
Node temp=front;
if(temp==null)
System.out.println("list is empty");
else
{
System.out.println("deleted element is:" + front.data+" having a priority:"+front.priority);
front=front.link;
temp=null; /*whenever you are assining null to a reference of a class ,then the object associated with that reference is immediately deleted by the garbage collector due to automatic memory management */
display();
}
}
public static void main(String [] args)
{
int ch;
PriorityQueue pq=new PriorityQueue();
pq.br=new BufferedReader(new InputStreamReader(System.in));
try
{
while(true)
{
System.out.println("1.creation");
System.out.println("2.display");
System.out.println("3.delete");
System.out.println("4.exit");
System.out.print("Enter your choice : ");
ch=Integer.parseInt(pq.br.readLine());
System.out.println();
switch(ch)
{
case 1:
pq.creation();
break;
case 2:
pq.display();
break;
case 3:
pq.delete();
break;
case 4:
return;
default:
System.out.println("invalid choice...try again ");
}
}
}
catch(Exception e)
{
System.out.println(e);
}
}
}
2.Stack implementation using single linked list in c language
program:
#include<stdio.h>
#include<conio.h>
#include<alloc.h>
void display();
typedef struct stack
{
int ele;
stack *link;
} node;
node *top=NULL;
void push(int x)
{
node *current=NULL;
current=(node *)malloc(sizeof(node));
if(current==NULL)
{
printf("\nmemory is not allocated properly");
return;
}
current->ele=x;
current->link=top;
top=current;
}
void length()
{
node *temp;
int len=0;
temp=top;
while(temp!=NULL)
{
++len;
temp=temp->link;
}
printf("\n the length of the stack is : %d",len);
}
void pop()
{
node *temp;
if(top==NULL)
printf("\n stack is empty ");
else
{
temp=top;
top=top->link;
printf("\n the deleted element is :%d\n",temp->ele);
free(temp);
}
}
void topmost()
{
if(top==NULL)
printf("\nstack is empty");
else
printf("top most element is : %d",top->ele);
}
void display()
{
if(top==NULL)
printf("\n stack is empty ");
else
{
node *temp;
temp=top;
printf("\n the stack elements are:");
while(temp!=NULL)
{
printf("%d<---",temp->ele);
temp=temp->link;
}
}
}
void main()
{
int i,ch;
clrscr();
ab:
printf("\n1.push\n2.pop\n3.topmost\n4.display\n5.length of stack\n6.exit\nenter your choice:");
scanf("%d",&i);
switch(i)
{
case 1:
printf("\n enter the element that you want to insert into d stack :");
scanf("%d",&ch);
push(ch);
break;
case 2:
pop();
break;
case 3:
topmost();
break;
case 4:
display();
break;
case 5:
length();
break;
case 6:
return;
default:
printf("\ninvalid choice...try again..");
}
goto ab;
}
3.implementation of insertion sorting through single linked list in c language
program:
#include<stdio.h>
#include<conio.h>
#include<malloc.h>
struct node
{
int data;
struct node *link;
};
struct node *first=NULL,*new,*temp;
void creation()
{
int data;
do
{
printf("enter the data of node which you want to sort :");
scanf("%d",&data);
new=(struct node*)malloc(sizeof(struct node));
new->data=data;
new->link=NULL;
if(first==NULL || new->data < first->data)
{
new->link=first;
first=new;
}
else
{
temp=first;
while(temp->link!=NULL&&new->data>=temp->link->data)
temp=temp->link;
new->link=temp->link;
temp->link=new;
}
printf("\n do u want to add one more node[1/0] : ");
scanf("%d",&data);
}while(data);
}
void display()
{
if(first==NULL)
{
printf("\n list is empty... nothing to display");
}
else
{
temp=first;
printf("\n sorted list is :\n");
while(temp!=NULL)
{
printf("%d-->",temp->data);
temp=temp->link;
}
}
}
int main()
{
creation();
display();
getch();
return 0;
}
4.binary search implementation in c language using arrays
program:
#include<stdio.h>
#include<conio.h>
int main()
{
int i,key,a[]={1,5,9,11,23,43,56,59,78,99},l=0,h=9,mid;
printf("enter a values to search:");
scanf("%d",&key);
while(l<=h)
{
mid=(l+h)/2;
if(a[mid]==key)
{
printf("search element is found at %d location",mid);
getch();
//exit(0);
return;
}
a[mid]>key?(h=mid-1):(l=h+1);
}
printf("search element is not found");
getch();
return 0;
}
5.implementation of bubblesort in c language using arrays
program:
//bubble sorting
#include<stdio.h>
#include<conio.h>
int main()
{
int i,j,a[10],n,t;
printf("enter the number of elements so u want to sort:");
scanf("%d",&n);
printf("enter the elements of the array:");
for(i=0;i<n;i++)
scanf("%d",&a[i]);
printf("array before sorting\n");
for(i=0;i<n;i++)
printf("%d\t",a[i]);
for(i=0;i<n;i++){
for(j=0;j<n-i;j++){
if(a[i]<a[j])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
}
printf("array after sorting\n");
for(i=0;i<n;i++)
printf("%d\t",a[i]);
getch();
return 0;
}
6.implementation of linearsearch using arrays in c language
program:
#include<stdio.h>
#include<conio.h>
int main()
{
int key,i,a[]={11,3,56,78,93,45,26,28,6,71};
printf("enter a values to search:");
scanf("%d",&key);
for(i=0;i<=9;i++)
{
if(a[i]==key)
break;
}
if(i==10)
printf("search element is not found");
else
printf("search element is found at %d location",i+1);
getch();
return 0;
}
7.implementation of stack using arrays in c language
program:
#include<stdio.h>
#include<conio.h>
#define max 5
int stack[max],ele,top;
void push();
void pop();
void display();
void topelement();
int main()
{
char ch;
top=-1;
printf("1.push\n2.pop\n3.display\n4.topelement\n5.end\nenter your choice:");
scanf("%d",&ele);
do
{
switch(ele)
{
case 1:
push();
break;
case 2:
pop();
break;
case 3:
display();
break;
case 4:
topelement();
break;
case 5:
exit(0);
break;
}
printf("\ndo u want to perform more stack operations[y/n]:");
ch=_getch();
if(ch=='y')
{
printf("\n1.push\n2.pop\n3.display\n4.topelement\n5.end\nenter your choice:");
scanf("%d",&ele);
}
}
while(ch=='y');
_getch();
return 0;
}
void push()
{
if(top==max-1)
{
printf("stack is full cannot insert anymore\n");
return;
}
else
{
printf("enter the element do u want to insert:");
scanf("%d",&ele);
top++;
stack[top]=ele;
}
}
void pop()
{
if(top==-1)
{
printf("stack is empty..no elements to delete\n");
return;
}
else
{
top--;
printf("deleted element from the stack is : %d",stack[top+1]);
}
}
void display()
{
int i;
if(top==-1)
{
printf("stack is empty..no elements to display\n");
return;
}
else
{
printf("the elememts of the stack are : ");
for(i=0;i<=top;i++)
printf("%d\t",stack[i]);
}
}
void topelement()
{
if(top==-1)
{
printf("stack is empty\n");
return;
}
else
printf("the top most element of the stack is : %d",stack[top]);
}
8.implementation of circular queue using arrays in c language
program:
#include<stdio.h>
#include<conio.h>
#include<process.h>
#define MAX 5
int queue[MAX],front=0,rear=0;
void insertion()
{
if(front==(rear+1)%MAX)
printf("\n queue is full..cannot insert ");
else
{
rear=(rear+1)%MAX;
printf("\n Enter the element to insert in the queue : ");
scanf("%d",&queue[rear]);
}
}
void deletion()
{
if(front==0&&rear==0)
printf("\n queue is empty...nothing to delete ");
else
{
printf("\n deleted element is : %d ",queue[front]);
front=(front+1)%MAX;
}
if(front==rear)
{
front=0;
rear=0;
}
}
void display()
{
int i;
if(front==0&&rear==0)
printf("\n queue is empty...nothing to display ");
else
{
if(front==0)
front++;
for(i=front;i!=rear;i=(i+1)%MAX)
{
printf("%d ",queue[i]);
}
printf("%d ",queue[i]);
}
}
void length()
{
int length=0,i;
if(front==0&&rear==0)
length=0;
else
{
for(i=front;i!=rear;i=(i+1)%MAX)
length++;
}
printf("\n length of the queue is : %d",length);
}
void main()
{
int ch;
clrscr();
while(1)
{
printf("\n 1.insertion\n 2.deletion\n 3.display\n 4.length\n 5.exit");
printf("\n Enter your choice :");
scanf("%d",&ch);
switch(ch)
{
case 1:
insertion();
break;
case 2:
deletion();
break;
case 3:
display();
break;
case 4:
length();
break;
case 5:
exit(0);
default:
printf("\n invalid choice...try again");
}
}
}
9.implementation of single linked list in c language
program:
#include<stdio.h>
#include<conio.h>
#include<process.h>
#include<stdlib.h>
typedef struct node
{
int data;
struct node *link;
}NODE;
NODE *first=NULL,*last,*temp,*newnode;
void creation()
{
int ch;
do
{
newnode=(NODE*)malloc(sizeof(NODE));
newnode->link=NULL;
printf("\n enter the data of the node : ");
scanf("%d",&newnode->data);
if(first==NULL)
{
first=newnode;
}
else
{
last->link=newnode;
}
last=newnode;
printf("\n do u want to add one more node [1/0] : ");
scanf("%d",&ch);
}
while(ch==1);
}
void insertion()
{
int ch,data;
printf("\n 1.at first \n 2.at middle \n 3.at end ");
printf("\n enter your choice :");
scanf("%d",&ch);
newnode=(NODE *)malloc(sizeof(NODE));
newnode->link=NULL;
printf("\n enter the data for the new node :");
scanf("%d",&newnode->data);
switch(ch)
{
case 1:
newnode->link=first;
first=newnode;
break;
case 2:
printf("\n enter the data of the node after which you want to insert :");
scanf("%d",&data);
temp=first;
while(temp->data==data)
temp=temp->link;
newnode->link=temp->link;
temp->link=newnode;
break;
case 3:
temp=first;
while(temp->link!=NULL)
temp=temp->link;
temp->link=newnode;
last=newnode;
break;
default:
printf("\n invalid choice ");
free(newnode);
}
}
void deletion()
{
int ch,data;
NODE *temp1;
if(first==NULL)
printf("\n list is empty ");
else
{
printf("\n1.first node \n2.middle node \n3.ending node ");
printf("\n enter your choice:");
scanf("%d",&ch);
switch(ch)
{
case 1:
temp=first;
printf("\n deleted element is : %d ",first->data);
first=first->link;
free(temp);
break;
case 2:
printf("\n enter the data of the node that you want to delete : ");
scanf("%d",&data);
temp=first;
while(temp->link->data!=data)
temp=temp->link;
temp1=temp->link;
temp->link=temp->link->link;
free(temp1);
break;
case 3:
temp=first;
while(temp->link->link!=NULL)
temp=temp->link;
printf("\n deleted element is : %d ",temp->link->data);
temp1=temp->link;
temp->link=NULL;
free(temp1);
break;
default:
printf("\ninvalid choice");
}
}
}
void length()
{
int l=0;
temp=first;
while(temp!=NULL)
{
temp=temp->link;
l++;
}
printf("\n length of the list is : %d",l);
}
void display()
{
temp=first;
if(temp==NULL)
printf("\n list is empty...nothing to display ");
else
{
printf("\n");
while(temp!=NULL)
{
printf("%d-->",temp->data);
temp=temp->link;
}
}
}
void main()
{
int ch;
clrscr();
while(1)
{
printf("\n 1.creation \n 2.insertion \n 3.deletion \n 4.display \n 5.length");
printf("\n 6.exit \n Enter your choice :");
scanf("%d",&ch);
switch(ch)
{
case 1:
creation();
break;
case 2:
insertion();
break;
case 3:
deletion();
break;
case 4:
display();
break;
case 5:
length();
break;
case 6:
exit(0);
default:
printf("\ninvalid choice\n");
}
}
}