C Program to Counting total number of nodes in a tree
#include#include struct tree_node { int data; struct tree_node *left,*right,*parent; }; typedef struct tree_node node; node * new_node(int x); node * insert_node(node *root, int x); int count_nodes(node *root); int main() { node *root=NULL; int i,x,max; printf("how many numbers do you want to enter in tree?\n"); scanf("%d",&max); printf("Enter %d numbers \n",max); for(i=0;i<max;i++) { scanf("%d",&x); root = insert_node(root, x); } printf("all numbers inserted into the tree\t press enter to count"); fflush(stdin); getchar(); printf("\nThere are total %d nodes in this tree\n",count_nodes(root)); return 0; } node * insert_node(node *root, int x) { if(!root) { root = new_node(x); return root; } if(root->data > x) root->left = insert_node(root->left,x); else root->right = insert_node(root->right,x); return root; } int count_nodes(node *root) { if(!root) return 0; else return(count_nodes(root->left) + 1 + count_nodes(root->right)); } node * new_node(int x) { node *furnished; furnished = (node*)malloc(sizeof(node)); furnished->data=x; furnished->left=NULL; furnished->right=NULL; furnished->parent=NULL; return furnished; }
No comments:
Post a Comment