if (bsTree.data > key) return SearchBST(bsTree.left, key); else return SearchBST(bsTree.right, key); }
///<summary> /// 中序遍历二叉排序树 ///</summary> ///<param></param> ///<returns></returns> static void LDR_BST(BSTree bsTree) { if (bsTree != null) { //遍历左子树 LDR_BST(bsTree.left);
//输入节点数据 Console.Write(bsTree.data + "");
//遍历右子树 LDR_BST(bsTree.right); } }
///<summary> /// 删除二叉排序树中指定key节点 ///</summary> ///<param></param> ///<param></param> static void DeleteBST(ref BSTree bsTree, int key) { if (bsTree == null) return;
if (bsTree.data == key) { //第一种情况:叶子节点 if (bsTree.left == null && bsTree.right == null) { bsTree = null; return; } //第二种情况:左子树不为空 if (bsTree.left != null && bsTree.right == null) { bsTree = bsTree.left; return; } //第三种情况,右子树不为空 if (bsTree.left == null && bsTree.right != null) { bsTree = bsTree.right; return; } //第四种情况,左右子树都不为空 if (bsTree.left != null && bsTree.right != null) { var node = bsTree.right;
(编辑:焦作站长网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|