/// <summary>
/// 作者:GENGWEI
/// </summary>
/// <summary>
/// 在线索二叉树P节点后插入S节点
/// </summary>
/// <param name="p"></param>
/// <param name="s"></param>
static void InsertNode(TNode p,TNode s)
{
TNode q;
if (p.RTag == Tag.Thread)
{
s.right = p.right;
s.RTag = Tag.Thread;
p.right = s;
p.RTag = Tag.Link;
}
else
{
q = p.right;
while (q.LTag == Tag.Link)
q = q.left;
q.left = p.right;
s.RTag = Tag.Link;
p.right = s;
}
s.left = p;
s.LTag = Tag.Thread;
}
本文介绍了一种在线索二叉树中特定节点后插入新节点的方法。该方法考虑了被插入节点前驱节点的右指针是否为线索的情况,并据此进行不同的处理。当被插入节点的前驱节点的右指针已经是线索时,直接修改指针和标记;如果不是,则寻找新的插入位置。
1286

被折叠的 条评论
为什么被折叠?



