ReactOS系统中平衡二叉树按从左到右的顺序找到下一个结点MmIterateNextNode()按从左到右的顺序找到下一个结点
MmIterateNextNode()

/**
* @name MmIterateNextNode
*
* @param Node
* Current node in the tree.
*
* @return Next node in the tree (sorted by address).
*/
static PMEMORY_AREA MmIterateNextNode(PMEMORY_AREA Node)
{
if (Node->RightChild != NULL)
{
Node = Node->RightChild;
while (Node->LeftChild != NULL)
Node = Node->LeftChild;
}
else
{
PMEMORY_AREA TempNode = NULL;
do
{
/* Check if we're at the end of tree. */
if (Node->Parent == NULL)
return NULL;
TempNode = Node;
Node = Node->Parent;
}
while (TempNode == Node->RightChild);
}
return Node;
}
ReactOS平衡二叉树找下一结点方法

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



