#region 判断二叉树是否为空 /// <summary> /// 判断二叉树是否为空 /// </summary> /// <typeparam></typeparam> /// <param></param> /// <returns></returns> public bool BinTreeisEmpty<T>(ChainTree<T> tree) { return tree == null ? true : false; } #endregion
#region 在二叉树中查找指定的key /// <summary> ///在二叉树中查找指定的key /// </summary> /// <typeparam></typeparam> /// <param></param> /// <param></param> /// <returns></returns> public ChainTree<T> BinTreeFind<T>(ChainTree<T> tree, T data) { if (tree == null) return null;
if (tree.data.Equals(data)) return tree;
return BinTreeFind(tree, data); } #endregion
#region 清空二叉树 /// <summary> /// 清空二叉树 /// </summary> /// <typeparam></typeparam> /// <param></param> public void BinTreeClear<T>(ChainTree<T> tree) { //递的结束点,归的起始点 if (tree == null) return;
BinTreeClear(tree.left); BinTreeClear(tree.right);
//在归的过程中,释放当前节点的数据空间 tree = null; } #endregion
#region 二叉树的先序遍历 /// <summary> /// 二叉树的先序遍历 /// </summary> /// <typeparam></typeparam> /// <param></param> public void BinTree_DLR<T>(ChainTree<T> tree) { if (tree == null) return;
//先输出根元素 Console.Write(tree.data + "t");
//然后遍历左子树 BinTree_DLR(tree.left);
//最后遍历右子树 BinTree_DLR(tree.right); } #endregion
#region 二叉树的中序遍历 /// <summary> /// 二叉树的中序遍历 /// </summary> /// <typeparam></typeparam> /// <param></param> public void BinTree_LDR<T>(ChainTree<T> tree) { if (tree == null) return;
//优先遍历左子树 BinTree_LDR(tree.left);
//然后输出节点 Console.Write(tree.data + "t");
//最后遍历右子树 BinTree_LDR(tree.right); } #endregion
#region 二叉树的后序遍历 /// <summary> /// 二叉树的后序遍历 /// </summary> /// <typeparam></typeparam> /// <param></param> public void BinTree_LRD<T>(ChainTree<T> tree) { if (tree == null) return;
//优先遍历左子树 BinTree_LRD(tree.left);
//然后遍历右子树 BinTree_LRD(tree.right);
(编辑:焦作站长网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|