您的位置:首页 > 编程语言

二叉树的基础代码:遍历+深度

2017-04-13 09:20 246 查看
求二叉树的深度(后序遍历)

int Depth (BiTree T ) // 返回二叉树的深度

{

  if ( !T ) depthval = 0;

  else{

    depthLeft = Depth( T->lchild );

    depthRight= Depth( T->rchild );

    depthval = 1 + (depthLeft > depthRight ?depthLeft : depthRight);

}

  return depthval;

}

遍历二叉树

void Preorder (BiTree T,void( *visit)(TElemType& e))

{     // 先序遍历二叉树

if (T) {

  visit(T->data); // 访问结点

  Preorder(T->lchild, visit); // 遍历左子树

  Preorder(T->rchild, visit);// 遍历右子树

}

}

void Inorder (BiTree T,void( *visit)(TElemType& e))

{   // 中序遍历二叉树

if (T) {

   Inreorder(T->lchild, visit); // 遍历左子树

  visit(T->data); // 访问结点

  Inreorder(T->rchild, visit); // 遍历右子树

}

}

void Postorder (BiTree T,void( *visit)(TElemType& e))

{    // 后序遍历二叉树

if (T) {

  Postreorder(T->lchild, visit); // 遍历左子树

  Postreorder(T->rchild, visit);// 遍历右子树

  visit(T->data); // 访问结点

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: