Golgappa.net | Golgappa.org | BagIndia.net | BodyIndia.Com | CabIndia.net | CarsBikes.net | CarsBikes.org | CashIndia.net | ConsumerIndia.net | CookingIndia.net | DataIndia.net | DealIndia.net | EmailIndia.net | FirstTablet.com | FirstTourist.com | ForsaleIndia.net | IndiaBody.Com | IndiaCab.net | IndiaCash.net | IndiaModel.net | KidForum.net | OfficeIndia.net | PaysIndia.com | RestaurantIndia.net | RestaurantsIndia.net | SaleForum.net | SellForum.net | SoldIndia.com | StarIndia.net | TomatoCab.com | TomatoCabs.com | TownIndia.com
Interested to Buy Any Domain ? << Click Here >> for more details...

implement general tree using link list

Answer Posted / abdur rab

#include <stdio.h>
#include <math.h>

struct node {
int element;
struct node* left;
struct node* right;
};


int lookup ( struct node* _node_ptr, int target_element )
{
if ( NULL == _node_ptr ) return ( 0 );
if ( target_element == _node_ptr -> element )
return ( 1 );
else {
if ( target_element < _node_ptr ->
element ) return ( lookup ( _node_ptr -> left,
target_element ) );
else return ( lookup ( _node_ptr -> right,
target_element ) );
}
}

int max_depth ( struct node* _node_ptr )
{
if ( NULL == _node_ptr ) return ( 0 );
else {
int _l_depth = max_depth ( _node_ptr ->
left );
int _r_depth = max_depth ( _node_ptr ->
right );
return ( ( _l_depth > _r_depth ) ? (
_l_depth + 1 ) : ( _r_depth + 1 ) );
}
}

struct node* create_node ( int _element )
{
struct node* _node = ( struct node* ) malloc (
sizeof (struct node) );
_node -> element = _element;
_node -> left = NULL;
_node -> right = NULL;

return ( _node );
}

struct node* insert ( struct node* _node_ptr, int _element )
{
if ( NULL== _node_ptr ) return ( create_node (
_element ) );
else {
if ( _element <= _node_ptr -> element )
_node_ptr -> left = ( insert ( _node_ptr -> left,
_element ) );
else _node_ptr -> right = ( insert (
_node_ptr -> right, _element ) );
}
return ( _node_ptr );
}

void inorder_traversal ( struct node* _node_ptr )
{
if ( NULL == _node_ptr ) return;
inorder_traversal ( _node_ptr -> left );
printf ("\n The element :%d", _node_ptr ->
element );
inorder_traversal ( _node_ptr -> right );
}

void preorder_traversal ( struct node* _node_ptr )
{
if ( NULL == _node_ptr ) return;
printf ("\n The element :%d", _node_ptr ->
element );
preorder_traversal ( _node_ptr -> left );
preorder_traversal ( _node_ptr -> right );
}

void postorder_traversal ( struct node* _node_ptr )
{
if ( NULL == _node_ptr ) return;
postorder_traversal ( _node_ptr -> left );
postorder_traversal ( _node_ptr -> right );
printf ("\n The element :%d", _node_ptr ->
element );
}


int main ( int argc, char* argv[] )
{
int* array_int, nTotalCount = 10, i;
struct node* _node_ptr = NULL;
int temp = 0;

printf ( "\n/********************** Binary Tree
********************/" );
array_int = ( int* ) malloc ( nTotalCount * sizeof
( int ) );

for ( i = 0; i < nTotalCount; i++ )
{
temp = rand() % 100 ;
array_int [i] = ( temp == 0 ) ? ( temp +
1 ) : temp;
}

printf( "\nThe Numbers in given order" );
for ( i = 0; i < nTotalCount; i++ )
printf ( "\t%d", array_int [i] );

for ( i = 0; i < nTotalCount; i++ )
_node_ptr = insert ( _node_ptr, array_int
[i] );

inorder_traversal ( _node_ptr );
printf ("\n max possible nodes :%f", pow ( 2,
max_depth ( _node_ptr ) ) );

free ( array_int [i] );
}

Is This Answer Correct ?    10 Yes 15 No



Post New Answer       View All Answers


Please Help Members By Posting Answers For Below Questions

What is the difference between scanf and fscanf?

1270


A collection of functions,calls,subroutines or other data a) library b) header files c) set of files d) textfiles

1179


Can variables be declared anywhere in c?

1095


Draw a flowchart to produce a printed list of all the students over the age of 20 in a class .The input records contains the name and age of students. Assume a sentinel value of 99 for the age field of the trailer record

5216


What is echo in c programming?

1030


What is the most efficient way to store flag values?

1192


With the help of using classes, write a program to add two numbers.

1043


What are the header files used in c language?

1055


Can you mix old-style and new-style function syntax?

1102


Explain what is a const pointer?

1087


p*=(++q)++*--p when p=q=1 while(q<=6)

1763


What does malloc () calloc () realloc () free () do?

1066


What does sizeof return c?

1067


Can include files be nested?

1114


How will you divide two numbers in a MACRO?

1141