数据结构 笔记:二叉树中的结点插入操作

本文探讨了二叉树中节点插入的操作,指出在已有的二叉树节点上不能直接插入子节点,每个节点只能有左孩子和右孩子。插入新节点时,需要指定作为左孩子还是右孩子。插入数据元素时,需要指定插入位置,并创建新的节点,同时处理好父节点的指针。当插入失败时,要释放节点空间。
摘要由CSDN通过智能技术生成

是否能够在二叉树的而已结点出插入子结点?

-不能,二叉树结点的每个结点的子结点是固定的,只存在左孩子和右孩子.

是否需要指定新数据元素(新结点)的插入位置?

-需要指定为左孩子或者右孩子

enum BTNodePos
{
    ANY,
    LEFT,
    RIGHT
};

插入的方式

-插入新结点

·bool insert(TreeNode<T>* node)

·bool insert(TreeNode<T>* node,BTNodePos pos)

-插入数据元素

·bool insert(cosnt T& value,TreeNode<T>* parent)

·bool insert(const T& value,TreeNode<T>* parent,BTNodePos pos)

指定位置的结点插入

bool insert(n, np, pos);

//pos = ANY
if(np->left == NULL)
{
    np->left = n;
}
else if( np->right == NULL)
{
    np->right = n;
}
else
{
    ret = false;
}

//pos = LEFT
if(np->left == NULL)
{
    np->left = n;
}
else
{
    ret = false;
}

//pos = RIGHT
if(np->right &
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值