二叉树三种遍历(递归的妙用)
2017-11-02 19:28
288 查看
先序遍历
后序遍历
中序遍历
求大于等于x的节点的个数
求树高
void preorder(Tree r){ if(r){ printf("%c ",r->data); preorder(r->l); preorder(r->r); } }
后序遍历
void postorder(Tree r){ if(r){ preorder(r->l); preorder(r->r); printf("%c ",r->data); } }
中序遍历
void inorder(Tree r){ if(r){ preorder(r->l); printf("%c ",r->data); preorder(r->r); } }
求大于等于x的节点的个数
int count(Tree r,int x){ if(!r) return 0; return r->data>=x+count(r->l)+count(r->r); }
求树高
int count(Tree r){ if(!r) return 0; int hl=count(r->l);//左子树的高度 int hr=count(r->r);//右子树的高度 return 1+hl>hr?hl:hr;//到弹栈时树高仍为0,每次弹栈加一。 }
相关文章推荐
- 二叉树的存储方式以及递归和非递归的三种遍历方式
- 对于二叉树三种非递归遍历方式的理解
- 二叉树三种非递归遍历
- 二叉树的存储方式以及递归和非递归的三种遍历方式
- 二叉树的前序、中序、后序三种遍历的六种实现方式(递归、非递归)(C++)
- 二叉树的三种遍历的非递归实现
- 二叉树的三种遍历方式(递归、非递归和Morris遍历)
- 二叉树三种遍历递归及非递归实现(Java)
- 二叉树非递归三种遍历
- java 二叉树三种遍历(递归非递归)
- 二叉树的建立以及三种遍历方式的递归、非递归的实现
- 二叉树的存储方式以及递归和非递归的三种遍历方式
- 二叉树的三种遍历方法(递归和非递归)(转载)
- 二叉树遍历(包括先序创建二叉树,递归非递归三种遍历)源码
- c语言数据结构中二叉树的先序、中序、后序三种递归遍历代码
- 【python中二叉树的实现】python中二叉树的创建、三种方式递归遍历和非递归遍历
- 二叉树三种遍历非递归实现【每日一题】
- java实现二叉树的三种遍历算法(递归)
- 用非递归方式实现二叉树的前、中、后三种遍历方法
- 二叉树三种遍历的非递归实现