You are on page 1of 3

Data Structure Lab - S.Y. B. Tech.

(Sem 3)

Practical No. 1

Menu driven program for linear and binary search:

#include <stdio.h>
#include <stdlib.h>
#include<conio.h>
int main()
{
int c,i,n,key,array[100];
char ch;
do
{
getch();
system("cls");
printf("\n.....Menu......");
printf("\n1.Sequential Search \n2. Binary Search\n3.Exit");
printf("\nEnter your choice");
scanf("%d",&ch);
switch(ch)
{
case 1:
printf("Enter the number of elements in array\n");
scanf("%d", &n);
printf("Enter %d integer(s)\n", n);
for (i = 0; i < n; i++)
scanf("%d", &array[i]);
printf("Enter a number to search\n");
scanf("%d", &key);
for (i = 0; i < n; i++)
{
if (array[i] == key) /* If required element is found */
{
printf("%d is present at location %d.\n", key, i+1);
break;
}
}
if (i == n)
printf("%d isn't present in the array.\n", key);
break;
case 2:
int low, high, mid;
printf("Enter number of elements\n");
Data Structure Lab - S.Y. B. Tech. (Sem 3)

scanf("%d",&n);
printf("Enter %d integers\n",n);
for(i = 0; i < n; i++)
scanf("%d",&array[i]);
printf("Enter value to find\n");
scanf("%d", &key);
low = 0;
high = n - 1;
mid = (low+high)/2;
while (low <= high)
{
if(array[mid] < key)
low = mid + 1;
else if (array[mid] == key)
{
printf("%d found at location %d\n", key, mid+1);
break;
}
else{
high = mid - 1;
}
mid = (low + high)/2;
}
if(low > high)
printf("Not found! %d isn't present in the list\n", key);
break;
case 3: exit(0);
break;
default : printf("\nInvalid input");

}
printf("\n do you want to continue...(y/n) = ");
scanf(" %c",&ch);
}while(ch=='y' || ch == 'Y');
Data Structure Lab - S.Y. B. Tech. (Sem 3)

Output:

You might also like