#include <stdio.h>
#include <stdlib.h>
#define Max_size 10
int BinarySearchingRecursion(int arr[],int data,int low,int high);
void sortingInGeneral(int ptr[],int n);
void DisplayArray(int p[],int n);
void InsertingElement(int arr[],int data,int *Last_element,int max_size);
int main()
{ int a[Max_size]={21,23,1,2,34,10};
int data;
int element=-1;
int choice;
while(1)
{
printf("1]Inserting\n");
printf("2]Searching element\n");
printf("3]Display list\n");
printf("0]Stop\n");
printf("Enter choice:");
scanf("%d",&choice);
if(choice<=0)
{
break;
}
else
{
switch(choice)
{
case 1:
{
int data;
printf("Enter data to insert:");
scanf("%d",&data);
InsertingElement(a,data,&element,Max_size);
break;
}
case 2:
{
sortingInGeneral(a,element);
printf("Enter data to search in given array:");
scanf("%d",&data);
if(BinarySearchingRecursion(a,data,0,element)==-1)
{
printf("Enter element is not present in array list\n");
}
else
{
printf("Data is found at position:%d\n",BinarySearchingRecursion(a,data,0,element)+1);
}
break;
}
case 3:
{
DisplayArray(a,element);
break;
}
default:
{
printf("\nChoice is wrong\n");
}
}
}
}
return 0;
}
int BinarySearchingRecursion(int arr[],int data,int low,int high)
{
int mid;
if(low==high)
{
if(data==arr[low])
{
return low;
}
else
{
return -1;
}
}
else
{
mid=(low+high)/2;
if(arr[mid]==data)
{
return mid;
}
else if(data<arr[mid])
{
return BinarySearchingRecursion(arr,data,low,mid-1);
}
else
{
return BinarySearchingRecursion(arr,data,mid+1,high);
}
}
}
void sortingInGeneral(int ptr[],int n)
{
int tem;
for(int i=0;i<n;i++)
{
for(int j=i+1;j<n;j++)
{
if(ptr[i]>ptr[j])
{
tem=ptr[i];
ptr[i]=ptr[j];
ptr[j]=tem;
}
}
}
}
void InsertingElement(int arr[],int data,int *Last_element,int max_size)
{
if(*(Last_element)==max_size)
{
printf("List is full\n");
}
else
{
*Last_element=*Last_element+1;
arr[*(Last_element)]=data;
}
}
void DisplayArray(int p[],int n)
{
if(n==-1)
{
printf("List is empty\n");
}
else{
for(int i=0;i<n;i++)
{
printf("%d ",p[i]);
}
printf("\n");
}
}
0 Comments