break; case Direction.Right: if (tree.right != null) throw new Exception("树的右节点不为空,不能插入"); else tree.right = node;
break; } }
BinTreeAddNode(tree.left, node, data, direction); BinTreeAddNode(tree.right, node, data, direction);
return tree; } #endregion
#region 获取二叉树指定孩子的状态 /// <summary> /// 获取二叉树指定孩子的状态 /// </summary> /// <typeparam></typeparam> /// <param></param> /// <param></param> /// <returns></returns> public ChainTree<T> BinTreeChild<T>(ChainTree<T> tree, Direction direction) { ChainTree<T> childNode = null;
if (tree == null) throw new Exception("二叉树为空");
switch (direction) { case Direction.Left: childNode = tree.left; break; case Direction.Right: childNode = tree.right; break; }
return childNode; }
#endregion
#region 获取二叉树的深度 /// <summary> /// 获取二叉树的深度 /// </summary> /// <typeparam></typeparam> /// <param></param> /// <returns></returns> public int BinTreeLen<T>(ChainTree<T> tree) { int leftLength; int rightLength;
if (tree == null) return 0;
//递归左子树的深度 leftLength = BinTreeLen(tree.left);
//递归右子书的深度 rightLength = BinTreeLen(tree.right);
if (leftLength > rightLength) return leftLength + 1; else return rightLength + 1; } #endregion
(编辑:焦作站长网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|