void doubleTree(pnode *root) { pnode temp = NULL; if (*root == NULL) return; doubleTree(&((*root)->left)); doubleTree(&((*root)->right)); temp = (*root)->left; (*root)->left = createNode((*root)->data); (*root)->left->left = temp; }
void doubleTree(struct node* node) { struct node* oldLeft; if (node == NULL) return; doubleTree(node->left); doubleTree(node->right); oldLeft = node->left; node->left = newNode(node->data); node->left->left = oldLeft; }
/* * For each node in a BSTs, create a new duplicate node and * insert the duplicate node as the left child of the original node */ void doubleTree(struct node* node){ if (NULL == node) return; else{ doubleTree(node->left); doubleTree(node->right); struct node* oldNode; oldNode = node->left; node->left = newNode(node->data); node->left->left = oldNode; } }
void doubleTree(node* root){ if (root == NULL) { return; } else { doubleTree(root->left); doubleTree(root->right); node *tmp = root->left; root->left = newNode(root->data); root->left->left = tmp; } }
void doubleTree(struct node* node) { if(node == 0) return; else{ struct node* templ = node->left; //struct node* tempr = node->right; node->left = NewNode(node->data); node->left->left = templ; doubleTree(templ); doubleTree(node->right); } }
void doubleTree(struct node* node) { struct node* oldLeft; if (node==NULL) return; /* do the subtrees */ doubleTree(node->left); doubleTree(node->right); /* duplicate this node to its left */ oldLeft = node->left; node->left = newNode(node->data); node->left->left = oldLeft; }
void doubleTree(struct node* node) { if (!node) return; // Create new node, which is a copy of the current node struct node* newNode = malloc(sizeof(struct node)); newNode->data = node->data; newNode->left = node->left; newNode->right = node->right; // Point current node's ->left to newNode; node->left = newNode; // Recursively call function for both left and right branches doubleTree(newNode->left); doubleTree(newNode->right); }
void doubleTree(node *n) { if(n == NULL) return; else { node *t; t = n -> left; n -> left = (node *)malloc(sizeof(node)); n -> left -> data = n -> data; n -> left -> left = t; doubleTree(t); doubleTree(n -> right); } }
void doubleTree(struct node* n) { if(n != NULL) { struct node* temp = n->left; n->left = (struct node*)malloc(sizeof(struct node)); (n->left)->data = n->data; (n->left)->left = temp; (n->left)->right = NULL; if(n->right != NULL) { doubleTree(n->right); } if((n->left)->left != NULL) { doubleTree((n->left)->left); } } }
/** * [doubleTree description] * @param node [description] */ void doubleTree(struct node* node) { if(node == NULL) { return; } else { doubleTree(node->left); doubleTree(node->right); struct node* new_node = NewNode(node->data); new_node->left = node->left; new_node->right = NULL; node->left = new_node; } return; }
int main() { node *root = NULL, *rootb = NULL, *rooth = NULL, *temp; int sum = 25, *a, l = 0; a = (int *)malloc(sizeof(int)); root = insert(root, 10); root = insert(root, 7); root = insert(root, 6); root = insert(root, 8); root = insert(root, 13); root = insert(root, 15); root = insert(root, 11); printf("Part2: Size: \t%d\n", size(root, 0)); printf("Part3: Depth: \t%d\n", maxDepth(root)); printf("Part4: Min: \t%d\n", minValue(root)); printf("Part5: Post: \t");printPostorder(root);printf("\n"); printf("Part6: Path Sum: %d %s\n", sum, hasPathSum(root, sum)?"True":"False"); printf("Part7: Leaf Paths");printPaths(root, a, l); printf("\n"); inorder(root);printf("\n"); printf("Part8: Mirror: ");mirror(root);inorder(root);printf("\n"); rootb = insert(rootb, 10); rootb = insert(rootb, 7); rootb = insert(rootb, 6); rootb = insert(rootb, 8); rootb = insert(rootb, 13); rootb = insert(rootb, 15); rootb = insert(rootb, 11); printf("Part9: doubleTree: ");doubleTree(rootb);inorder(rootb);printf("\n"); printf("Part10: sameTree: %s\n", sameTree(root, root)?"True":"False"); mirror(root); printf("Part11: isBST: %s\n", isBST(root)?"True":"False"); printf("Part12: Tree list: "); rooth = treeList(root); temp = rooth -> left; printf("%d ", rooth -> data); while(temp != rooth) { printf("%d ", temp -> data); temp = temp -> left; } printf("\n"); return(0); }
void testDoubleTree() { struct node* rootNode = insert(NULL,3); rootNode = insert(rootNode,4); rootNode = insert(rootNode,5); rootNode = insert(rootNode,2); rootNode = insert(rootNode,1); printf("\n---------------------------------\n"); printf("Printing the tree before doubletree() is called \n"); printTree(rootNode); printf("\n---------------------------------\n"); printf("Printing the tree after doubletree() is called \n"); doubleTree(rootNode); printTree(rootNode); printf("Printing the tree after doubletree() is called \n"); }