// 树中只有1个结点 void Test6() { BinaryTreeNode* pNode1 = createBinaryTreeNode(1); Test("Test6", pNode1, true); destroyTree(pNode1); }
// 树中只有1个结点 void Test4() { BinaryTreeNode* pNode1 = createBinaryTreeNode(1); Test("Test4", pNode1); DestroyList(pNode1); }
// 1 // \ // 2 // \ // 3 // \ // 4 // \ // 5 void Test5() { BinaryTreeNode* pNode1 = createBinaryTreeNode(1); BinaryTreeNode* pNode2 = createBinaryTreeNode(2); BinaryTreeNode* pNode3 = createBinaryTreeNode(3); BinaryTreeNode* pNode4 = createBinaryTreeNode(4); BinaryTreeNode* pNode5 = createBinaryTreeNode(5); connectTreeNode(pNode1, NULL, pNode2); connectTreeNode(pNode2, NULL, pNode3); connectTreeNode(pNode3, NULL, pNode4); connectTreeNode(pNode4, NULL, pNode5); Test("Test5", pNode1, false); destroyTree(pNode1); }
// 1 // \ // 2 // \ // 3 // \ // 4 // \ // 5 void Test3() { BinaryTreeNode* pNode1 = createBinaryTreeNode(1); BinaryTreeNode* pNode2 = createBinaryTreeNode(2); BinaryTreeNode* pNode3 = createBinaryTreeNode(3); BinaryTreeNode* pNode4 = createBinaryTreeNode(4); BinaryTreeNode* pNode5 = createBinaryTreeNode(5); connectTreeNode(pNode1, NULL, pNode2); connectTreeNode(pNode2, NULL, pNode3); connectTreeNode(pNode3, NULL, pNode4); connectTreeNode(pNode4, NULL, pNode5); Test("Test3", pNode1); DestroyList(pNode1); }
BinaryTreeNode* creat_binary_tree( ) { BinaryTreeNode* pNode1 = createBinaryTreeNode(1); BinaryTreeNode* pNode2 = createBinaryTreeNode(2); BinaryTreeNode* pNode3 = createBinaryTreeNode(3); BinaryTreeNode* pNode4 = createBinaryTreeNode(4); BinaryTreeNode* pNode5 = createBinaryTreeNode(5); BinaryTreeNode* pNode6 = createBinaryTreeNode(6); BinaryTreeNode* pNode7 = createBinaryTreeNode(7); connectBinaryTreeNode(pNode1, pNode2, pNode3); connectBinaryTreeNode(pNode2, pNode4, pNode5); connectBinaryTreeNode(pNode5, pNode7, NULL); connectBinaryTreeNode(pNode3, NULL, pNode6); return pNode1; }
// 完全二叉树 // 1 // / \ // 2 3 // /\ / \ // 4 5 6 7 void Test1() { BinaryTreeNode* pNode1 = createBinaryTreeNode(1); BinaryTreeNode* pNode2 = createBinaryTreeNode(2); BinaryTreeNode* pNode3 = createBinaryTreeNode(3); BinaryTreeNode* pNode4 = createBinaryTreeNode(4); BinaryTreeNode* pNode5 = createBinaryTreeNode(5); BinaryTreeNode* pNode6 = createBinaryTreeNode(6); BinaryTreeNode* pNode7 = createBinaryTreeNode(7); connectTreeNode(pNode1, pNode2, pNode3); connectTreeNode(pNode2, pNode4, pNode5); connectTreeNode(pNode3, pNode6, pNode7); Test("Test1", pNode1, true); destroyTree(pNode1); }
// 10 // / \ // 6 14 // /\ /\ // 4 8 12 16 void Test1() { BinaryTreeNode* pNode10 = createBinaryTreeNode(10); BinaryTreeNode* pNode6 = createBinaryTreeNode(6); BinaryTreeNode* pNode14 = createBinaryTreeNode(14); BinaryTreeNode* pNode4 = createBinaryTreeNode(4); BinaryTreeNode* pNode8 = createBinaryTreeNode(8); BinaryTreeNode* pNode12 = createBinaryTreeNode(12); BinaryTreeNode* pNode16 = createBinaryTreeNode(16); connectTreeNode(pNode10, pNode6, pNode14); connectTreeNode(pNode6, pNode4, pNode8); connectTreeNode(pNode14, pNode12, pNode16); Test("Test1", pNode10); DestroyList(pNode4); }
// 不是平衡二叉树 // 1 // / \ // 2 3 // /\ // 4 5 // / // 6 void Test3() { BinaryTreeNode* pNode1 = createBinaryTreeNode(1); BinaryTreeNode* pNode2 = createBinaryTreeNode(2); BinaryTreeNode* pNode3 = createBinaryTreeNode(3); BinaryTreeNode* pNode4 = createBinaryTreeNode(4); BinaryTreeNode* pNode5 = createBinaryTreeNode(5); BinaryTreeNode* pNode6 = createBinaryTreeNode(6); connectTreeNode(pNode1, pNode2, pNode3); connectTreeNode(pNode2, pNode4, pNode5); connectTreeNode(pNode5, pNode6, NULL); Test("Test3", pNode1, false); destroyTree(pNode1); }