From e9f153767f8ebad02392acbfe36132903600d8b3 Mon Sep 17 00:00:00 2001 From: Ankit Chawla Date: Thu, 1 Oct 2020 17:30:44 +0530 Subject: [PATCH] Create Binary Tree Sorting Binary Tree Sorting using C --- sorting/Binary Tree Sorting | 67 +++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 sorting/Binary Tree Sorting diff --git a/sorting/Binary Tree Sorting b/sorting/Binary Tree Sorting new file mode 100644 index 0000000..4acaf6c --- /dev/null +++ b/sorting/Binary Tree Sorting @@ -0,0 +1,67 @@ +#include +#include +#include + +struct btreenode +{ + struct btreenode *leftchild ; + int data ; + struct btreenode *rightchild ; +} ; + +void insert ( struct btreenode **, int ) ; +void inorder ( struct btreenode * ) ; + +void main( ) +{ + struct btreenode *bt ; + int arr[10] = { 11, 2, 9, 13, 57, 25, 17, 1, 90, 3 } ; + int i ; + + bt = NULL ; + + clrscr( ) ; + + printf ( "Binary tree sort.\n" ) ; + + printf ( "\nArray:\n" ) ; + for ( i = 0 ; i <= 9 ; i++ ) + printf ( "%d\t", arr[i] ) ; + + for ( i = 0 ; i <= 9 ; i++ ) + insert ( &bt, arr[i] ) ; + + printf ( "\nIn-order traversal of binary tree:\n" ) ; + inorder ( bt ) ; + + getch( ) ; +} + +void insert ( struct btreenode **sr, int num ) +{ + if ( *sr == NULL ) + { + *sr = malloc ( sizeof ( struct btreenode ) ) ; + + ( *sr ) -> leftchild = NULL ; + ( *sr ) -> data = num ; + ( *sr ) -> rightchild = NULL ; + } + else + { + if ( num < ( *sr ) -> data ) + insert ( &( ( *sr ) -> leftchild ), num ) ; + else + insert ( &( ( *sr ) -> rightchild ), num ) ; + } +} + +void inorder ( struct btreenode *sr ) +{ + if ( sr != NULL ) + { + inorder ( sr -> leftchild ) ; + printf ( "%d\t", sr -> data ) ; + inorder ( sr -> rightchild ) ; + } +}