diff --git a/BinarySearch.c b/BinarySearch.c index 2952e6e..41670a3 100644 --- a/BinarySearch.c +++ b/BinarySearch.c @@ -17,9 +17,15 @@ int main() { /* check length of array */ int size_of_array = sizeof(arr) / sizeof(int); /* Check if 24 is into arr */ - printf("%d\n", binarySearch(arr, 24, 0, size_of_array-1)); + if(binarySearch(arr, 24, 0, size_of_array-1)==0) + printf("24 is present\n"); + else + printf("24 is absent\n"); /* Check if 118 is into arr */ - printf("%d\n", binarySearch(arr, 118, 0, size_of_array-1)); + if(binarySearch(arr, 118, 0, size_of_array-1)==0) + printf("118 is present\n"); + else + printf("118 is absent\n"); return 0; } @@ -29,18 +35,16 @@ int binarySearch(int array[], int number, int start, int end) { return array[start] == number ? 0 : 1; } - int tmp = (int) end / 2; + int mid = start+(end-start) / 2; //to get the middle number (same as int mid=(start+end)/2; ) /* divide array length in half */ - /* if number is greater than element in half, do search by start to tmp - * else search by tmp to end + /* if number is greater than element in half, do search by start to mid + * else search by mid to end */ - if(number == array[tmp]) { + if(number == array[mid]) { return 0; - } else if(number > array[tmp]) { - return binarySearch(array, number, start, tmp); + } else if(number < array[mid]) { + return binarySearch(array, number, start, mid-1); } else { - return binarySearch(array, number, tmp, end); + return binarySearch(array, number, mid+1, end); } } - - diff --git a/stack_using_linklist b/stack_using_linklist index 296c55b..f7ce5a0 100644 --- a/stack_using_linklist +++ b/stack_using_linklist @@ -17,24 +17,137 @@ void push(int x) } void display() { + printf("\n\tElements are:\n"); + struct node *temp; + temp=top; + + if(top==NULL) + { + printf("Underflow!!!\n"); + } + else + { + while(temp!=NULL) + { + + printf("\t%d\n",temp->data); + + temp=temp->link; + } + } + printf("\n"); +} +void pop() +{ + + struct node *temp; + + if(top==NULL) + { + printf("No element to delete !!\n"); + } + else + { + temp=top; + printf("Popped element is %d\n",temp->data); + top=top->link; + free(temp); + } +} +void top_element() +{ + if(top==NULL) printf("\tNo element to display !!\n"); + else printf("\tTop element is %d\n",top->data); +} +void free_stack() +{ + while(top!=NULL){ + struct node *temp; + temp=top; + top=top->link; + free(temp); + } +} +int main() +{ + + + int x; + int ch; + do{ + printf("\t1.Push\t2.pop\t3.display\t4.top\t5.Push elements\t6.exit\t: "); + scanf("%d",&ch); + switch(ch) + { + case 1:printf(" Enter element\t"); + scanf("%d",&x); + push(x); + break; + + case 2:pop(); + break; + + case 3:display(); + break; + + case 4:top_element(); + break; + + case 5: + printf("\tEnter number of elements to push\t"); + int temp; + scanf("%d",&temp); + for(int loop=0;loop +#include + +struct node +{ + int data; + struct node* link; +} *top=NULL; +void push(int x) +{ + + struct node *new; + new=(struct node*)malloc(sizeof(struct node)); + new->data=x; + new->link=top; + top=new; +} +void display() +{ + printf("\n\tElements are:\n"); struct node *temp; temp=top; if(top==NULL) { - printf("Underflow"); + printf("Underflow!!!\n"); } else { while(temp!=NULL) { - printf("%d",temp->data); - printf("\n"); + printf("\t%d\n",temp->data); + temp=temp->link; } } + printf("\n"); } void pop() { @@ -43,16 +156,30 @@ void pop() if(top==NULL) { - printf("No element to deletes "); + printf("No element to delete !!\n"); } else { temp=top; - printf("Popped element is %d\t",temp->data); + printf("Popped element is %d\n",temp->data); top=top->link; free(temp); } } +void top_element() +{ + if(top==NULL) printf("\tNo element to display !!\n"); + else printf("\tTop element is %d\n",top->data); +} +void free_stack() +{ + while(top!=NULL){ + struct node *temp; + temp=top; + top=top->link; + free(temp); + } +} int main() { @@ -61,7 +188,7 @@ int main() int x; int ch; do{ - printf("\t1.Push\t2.pop\t3.display\t4.exit\t"); + printf("\t1.Push\t2.pop\t3.display\t4.top\t5.Push elements\t6.exit\t: "); scanf("%d",&ch); switch(ch) { @@ -69,12 +196,31 @@ int main() scanf("%d",&x); push(x); break; + case 2:pop(); break; + case 3:display(); break; - case 4:exit(0); + + case 4:top_element(); + break; + + case 5: + printf("\tEnter number of elements to push\t"); + int temp; + scanf("%d",&temp); + for(int loop=0;loop