树的子结构(二)

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