看过上一篇的朋友这篇应该很容易懂。我就不多说了,随便提一下就好了。。不懂的可以先看看上一篇:二叉树的插入操作
删除: 需要注意的是我们节点个数的变化,因为我们删除的有可能不是一个节点而是一棵子树,那么我们节点树应该怎么算呢???我们先来看看代码:
public void DeleteNode(Btree t, uint pos, int count)
{
Btree tt = t;
uint bit = 0;
if (tt != null)
{
TreeNode parent = null;
TreeNode current = tt.node;
//查找我们需要删除位置的节点
while ((count > 0) && (current != null))
{
bit = pos & 1;
pos = pos >> 1;
parent = current;
if (bit == 0)
{
current = current.lchil