asciinode * build_ascii_tree_recursive(Tree * t) { asciinode * node; if (t == NULL) return NULL; node = malloc(sizeof(asciinode)); node->left = build_ascii_tree_recursive(t->left); node->right = build_ascii_tree_recursive(t->right); if (node->left != NULL) { node->left->parent_dir = -1; } if (node->right != NULL) { node->right->parent_dir = 1; } sprintf(node->label, "%d", t->element); node->lablen = strlen(node->label); return node; }
//--------------------------------------------------------- AsciiNode* AsciiTree::build_ascii_tree_recursive(Node* node) { if(node==NULL) return NULL; AsciiNode* ascii_node=new AsciiNode(); ascii_node->left=build_ascii_tree_recursive(node->left); ascii_node->right=build_ascii_tree_recursive(node->right); if(ascii_node->left!=NULL) ascii_node->left->parent_dir=-1; if(ascii_node->right!=NULL) ascii_node->right->parent_dir=1; sprintf(ascii_node->label, "%d", node->data); ascii_node->lablen=strlen(ascii_node->label); return ascii_node; }
//Copy the tree into the ascii node structre asciinode * build_ascii_tree(Tree * t) { asciinode *node; if (t == NULL) return NULL; node = build_ascii_tree_recursive(t); node->parent_dir = 0; return node; }
//--------------------------------------------------------- //Copy the tree into the ascii node structre AsciiNode* AsciiTree::build_ascii_tree(Node* node) { if(node==NULL) return NULL; AsciiNode* ascii_node; ascii_node=build_ascii_tree_recursive(node); ascii_node->parent_dir=0; return ascii_node; }