二叉树知识点整理

概念:

struct BinaryTree

{

int value;

BinaryTree*pright;

BinaryTree*pleft;

}

满二叉树 完全二叉树 二叉搜索树

编程题:

实现二叉树的遍历:

递归的算法实现二叉树的遍历:

题一:树的子结构:

vool hassubtree(BinaryTree *root1,BinaryTree 8root2)

{

bool result=false;

if(root1!=NULL&&root2!=NULL)

{

if(root1->value==root2->value)

{

result=Dosubtree(root1,toot2);

}

if (!result)

{

result=hassubtree(root1->left,root2);

}

if(!result)

{

result=hassubtree(root1->right,root2);

}

return result;

}

}

bool Dosubtree(BinaryTree *root1,BinaryTree 8root2)

{

if(root1->left==root2->left&&root1->right==root2->right)

 return true;

}

2.二叉树的镜像:

void reverse(Binarysearch *root)

{

//判断:

if(root==NULL||root->left==BULL&&root->right==NULL)

{

return;

}

Binarysearch*ptemp=root->left;

root->left=p->right;

p->right=p->temp;

reverse(p->left);

reverse(p->right);

}

3.二叉搜索树的后续遍历数列:

 

posted @ 2016-08-10 15:58  maxandhchen  阅读(240)  评论(0编辑  收藏  举报