树的子结构(二)
2014-11-24 01:25:31
·
作者:
·
浏览: 1
Node* pNode21 = createBinaryTreeNode(8);
BinaryTreeNode* pNode22 = createBinaryTreeNode(9);
BinaryTreeNode* pNode23 = createBinaryTreeNode(2);
connectBinaryTreeNode(pNode21,pNode22,pNode23);
if(isSubtreeInBinaryTree(pNode1,pNode21))
printf("the smalltree is a subtree in bigtree");
else
printf("not subtree");
}
void test2()
{
BinaryTreeNode* pNode1 = createBinaryTreeNode(8);
BinaryTreeNode* pNode2 = createBinaryTreeNode(8);
BinaryTreeNode* pNode3 = createBinaryTreeNode(7);
BinaryTreeNode* pNode4 = createBinaryTreeNode(9);
BinaryTreeNode* pNode5 = createBinaryTreeNode(2);
BinaryTreeNode* pNode6 = createBinaryTreeNode(4);
BinaryTreeNode* pNode7 = createBinaryTreeNode(7);
connectBinaryTreeNode(pNode1,pNode2,pNode3);
connectBinaryTreeNode(pNode2,pNode4,pNode5);
connectBinaryTreeNode(pNode5,pNode6,pNode7);
BinaryTreeNode* pNode21 = createBinaryTreeNode(8);
BinaryTreeNode* pNode22 = createBinaryTreeNode(9);
BinaryTreeNode* pNode23 = createBinaryTreeNode(2);
BinaryTreeNode* pNode24 = createBinaryTreeNode(1);
BinaryTreeNode* pNode25 = createBinaryTreeNode(2);
connectBinaryTreeNode(pNode21,pNode22,pNode23);
connectBinaryTreeNode(pNode22,pNode24,pNode25);
if(isSubtreeInBinaryTree(pNode1,pNode21))
printf("the smalltree is a subtree in bigtree");
else
printf("not subtree");
}
int main()
{
test1();
printf("\n\n");
test2();
return 0;
}
二叉树相关的代码有大量的指针操作,每一次使用指针的时候,我们都要问自己这个
指针有没有可能是NULL,如果是NULL该怎么处理。
==参考剑指offer