目录
一、二叉树
1、二叉树结点结构
struct BinaryNode
{
int val;
BinaryNode* left;
BinaryNode* right;
}
2、递归遍历
①先序遍历:对每一棵树和子树都是先遍历头结点,然后再是左结点,最后是右结点。
②中序遍历:对每一棵树和子树都是先遍历左结点,然后再是头结点,最后是右结点。
③后序遍历:对每一棵树和子树都是先遍历左结点,然后再是右结点,最后是头结点。
void recursion(struct BinaryNode * root)
{
if (root == NULL)
{
return;
}
//先序遍历
printf("%d ", root->val);
recursion(root->lChild);
recursion(root->rChild);
}
void recursion(struct BinaryNode * root)
{
if (root == NULL)
{
return;
}
recursion(root->lChild);
//中序遍历
printf("%d ", root->val);
recursion(root->rChild);
}
void recursion(struct BinaryNode * root)
{
if (root == NULL)
{
return;
}
recursion(root->lChild);
recursion(root->rChild);
//后序遍历
printf("%d ", root->val);
}
总结:第一次来到结点的时候打印就是先序遍历、第二次来到结点打印就是中序遍历、第三次来到结点打印就是后续遍历