Posts

Showing posts from April, 2021

#76_Insertion in Binary Search Tree

  #include   <stdio.h> #include   <stdlib.h> //Insertion in Binary Search Tree struct  node{      int  data;      struct  node  * left;      struct  node  * right; }; struct  node  * create_tree ( int   data ){      struct  node  * n  =  ( struct  node  * ) malloc ( sizeof ( struct  node));     n->data  =  data;     n->left  =  n->right  =   NULL ;      return  n; } void   InOrder ( struct  node  * root ){      if  (root  !=   NULL ){          InOrder (root->left);          printf ( " %d  " , root->data);      ...

#75_Searching in Binary Search Tree using Iterative Method

  #include   <stdio.h> #include   <stdlib.h> //Searching in Binary Search Tree using Iterative Method struct  node{      int  data;      struct  node  * left;      struct  node  * right; }; struct  node  * create_tree ( int   data ){      struct  node  * n  =  ( struct  node  * ) malloc ( sizeof ( struct  node));     n->data  =  data;     n->left  =  n->right  =   NULL ;      return  n; } void   InOrder ( struct  node  * root ){      if  (root  !=   NULL ){          InOrder (root->left);          printf ( " %d  " , root->da...

#74_Searching in Binary Search Tree

  #include   <stdio.h> #include   <stdlib.h> //Searching in Binary Search Tree struct   node {      int  data;      struct   node   * left;      struct   node   * right; }; struct   node   * create_tree ( int   data ){      struct   node   * n  =  ( struct   node   * ) malloc ( sizeof ( struct   node ));     n->data  =   data ;     n->left  =  n->right  =   NULL ;      return  n; } void   InOrder ( struct   node   * root ){      if  ( root   !=   NULL ){          InOrder ( root ->left);          printf ( " %d  " ,  root ->data);  ...

#72_Checking if tree is Binary Search Tree or Not!

  #include   <stdio.h> #include   <stdlib.h> //Checking if tree is Binary Search Tree or Not! struct  node{      int  data;      struct  node  * left;      struct  node  * right; }; struct  node  * create_tree ( int   data ){      struct  node  * n  =  ( struct  node  * ) malloc ( sizeof ( struct  node  * ));     n->data  =  data;     n->left  =  n->right  =   NULL ; } void   tree_traversal ( struct  node  * root ){      if  (root  !=   NULL ){          tree_traversal (root->left);          printf ( " %d  " , root->data);   ...

#69_InOrder Traversal in Binary Tree

  #include   <stdio.h> #include   <stdlib.h> //InOrder Traversal in Binary Tree struct   node {      int  data;      struct   node   * left;      struct   node   * right; }; struct   node   * create_array ( int   data ){      struct   node   * n  =  ( struct   node   * ) malloc ( sizeof ( struct   node ));     n->data  =   data ;     n->left  =  n->right  =   NULL ;      return  n; } void   tree_traversal ( struct   node   * root ){      if  ( root   !=   NULL ){          tree_traversal ( root ->left);          printf ( " %d  " ,  root ->...

#68_Post Order Traversal in Binary Tree

  #include   <stdio.h> #include   <stdlib.h> //Post Order Traversal in Binary Tree struct  node{      int  data;      struct  node  * left;      struct  node  * right; }; struct  node  * create_array ( int   data ){      struct  node  * n  =  ( struct  node  * ) malloc ( sizeof ( struct  node));     n->data  =  data;     n->left  =  n->right  =   NULL ;      return  n; } void   tree_traversal ( struct  node  * root ){      if  (root  !=   NULL ){          tree_traversal (root->left);          tree_traversal (root->right);    ...

#67_Preorder Traversal in Binary Tree

  #include   <stdio.h> #include   <stdlib.h> //Preorder Traversal in Binary Tree struct  node{      int  data;      struct  node  * left;      struct  node  * right; }; struct  node  * create_array ( int   data ){      struct  node  * n  =  ( struct  node  * ) malloc ( sizeof ( struct  node));     n->data  =  data;     n->left  =  n->right  =   NULL ;      return  n; } void   tree_traversal ( struct  node  * root ){      if  (root  !=   NULL ){          printf ( " %d  " , root->data);          tree_traversal (root->left);   ...

#65_Linked representation of a binary tree

  #include   <stdio.h> #include   <stdlib.h> //Linked representation of a binary tree struct   node {      int  data;      struct   node   * left;      struct   node   * right; }; struct   node   * create_node ( int   data ){      struct   node   * n  =  ( struct   node   * ) malloc ( sizeof ( struct   node ));     n->data  =   data ;     n->left  =  n->right  =   NULL ;      return  n; } int   main (){      struct   node   * root  =   create_node ( 2 );      struct   node   * p1  =   create_node ( 3 );      struct   node   * p2  =   create_node ( 1 ); ...

#58_Count Sort Algorithm

  #include   <stdio.h> //Count Sort Algorithm void   print_array ( int   * arr ,  int   size ){      for  ( int  i  =   0 ; i  <  size; i ++ )          printf ( " %d  " , arr[i]);      printf ( " \n " ); } void   count_sort ( int   * A ,  int   size ){      int  max  =  A[ 0 ];      for  ( int  i  =   0 ; i  <  size; i ++ ){          if  (max  <  A[i])             max  =  A[i];     }      int  count[max  +   1 ];      for  ( int  i  =   0 ; i  <=  max; i...

#57_Merge Sort Algorithm

  #include   <stdio.h> //Merge Sort Algorithm void   print_array ( int   * arr ,  int   size ){      for  ( int  i  =   0 ; i  <   size ; i ++ )          printf ( " %d  " ,  arr [i]);      printf ( " \n " ); } void   merge ( int   * A ,  int   low ,  int   mid ,  int   high ){      int  temp[ high   +   1 ];      int  i  =   low , j  =   mid   +   1 , k  =   low ;      while  (i  <=   mid   &&  j  <=   high ){          if  ( A [i]  <   A [j]){             temp[k]  =   A ...

#56_Quick Sort Algorithm

  #include   <stdio.h> //Quick Sort Algorithm void   print_array ( int   * arr ,  int   size ){      for  ( int  i  =   0 ; i  <   size ; i ++ )          printf ( " %d  " ,  arr [i]);      printf ( " \n " ); } int   partition ( int   arr [] ,  int   low ,  int   high ){      int  pivot  =   arr [ low ];      int  i  =   low   +   1 , j  =   high ;      int  temp;      do {          while  ( arr [i]  <=  pivot)             i ++ ;          while  ( arr [j]  >  pivot)  ...

#55_Selection Sort Algorithm

  #include   <stdio.h> //Selection Sort Algorithm void   print_array ( int   * A ,  int   size ){      for  ( int  i  =   0 ; i  <   size ; i ++ )          printf ( " %d  " ,  A [i]);      printf ( " \n " ); } void   selection_sort ( int   * A ,  int   size ){      for  ( int  i  =   0 , k; i  <   size   -   1 ; i ++ ){          int  minimum  =   A [i];          for  ( int  j  =  i; j  <   size   -   1 ; j ++ ){              if  (minimum  >   A [j  +   1 ]){     ...