二叉数遍历

2020-02-20  本文已影响0人  sorry510

BiTree
BiTree->data; //节点数据
BiTree->lchild; // 左子树
BiTree->rchild; // 右子树

根节点 V
左子树 L
右子树 R

先序遍历 V|L|R
中序遍历 L|V|R
后序遍历 L|R|V

先序遍历算法

preOrderTraverse(BiTree T) {
  if(T==null)
      return;
  printf("%s", T->data); // 先显示节点数据
  preOrderTraverse(T->lchild); // 再遍历左子树
  preOrderTraverse(T->rchild); // 最后遍历右子树
}

中序遍历算法

InOrderTraverse(BiTree T) {
  if(T==null)
      return;
  InOrderTraverse(T->lchild); // 先遍历左子树
  printf("%s", T->data); // 再显示节点数据
  InOrderTraverse(T->rchild); // 最后遍历右子树
}

后序遍历算法

postOrderTraverse(BiTree T) {
  if(T==null)
      return;
  postOrderTraverse(T->lchild); // 先遍历左子树
  postOrderTraverse(T->rchild); // 再后遍历右子树
  printf("%s", T->data); // 最后显示节点数据
}
上一篇下一篇

猜你喜欢

热点阅读