首页 > 编程知识 正文

中序遍历的非递归算法,二叉排序树非递归查找算法

时间:2023-05-03 10:27:22 阅读:34463 作者:4398

由于此地板涉嫌违规,因此它将折叠在系统中以隐藏此地板并显示此地板

我以前的代码中有实现前序和后序的,但中序应该很相似

结构实用的头发(结构AVL tree * tree ) ) ) ) )。

{

结构酷精灵currentNode=tree-m_rootNode;

目前节点!=tree-m_nullNode )

{

//find the smallest node

while(currentnode-m_child1!=tree-m_nullNode )

current node=current node-m _ child 1;

返回当前节点;

}

返回空值;

}

结构的酷炫精灵avltreeiteratetail (结构*树) ) )。

{

结构酷精灵currentNode=tree-m_rootNode;

目前节点!=tree-m_nullNode )

{

//find the greatest node

while(currentnode-m_child2!=tree-m_nullNode )

current node=current node-m _ child 2;

返回当前节点;

}

返回空值;

}

结构酷精灵AvlTreeIterateNext (

结构AVL tree * tree,

结构酷精灵节点)

{

结构酷精灵currentNode;

if(node-m_child2!=tree-m_nullNode )

{

//lookforrightchild ' ssmallestnode

currentNode=node-m_child2;

while(currentnode-m_child1!=tree-m_nullNode )

current node=current node-m _ child 1;

返回当前节点;

}

elseif(node-m_parent!=tree-m_nullNode )

{

currentNode=node;

//the node has no right child,look back

wile (当前节点!=tree-m_rootNode )

if (current node-m _ parent-m _ child 2!=currentNode )

返回当前节点- m _ parent;

else current node=current node-m _ parent;

}

返回空值;

}

struct酷炫精灵AvlTreeIteratePrev (

结构AVL tree * tree,

结构酷精灵节点)

{

结构酷精灵currentNode;

if(node-m_child1!=tree-m_nullNode )

{

currentNode=node-m_child1;

//look for leftchild ' sgreatestnode

while(currentnode-m_child2!=tree-m_nullNode )

current node=current node-m _ child 2;

返回当前节点;

}

elseif(node-m_parent!=tree-m_nullNode )

{

currentNode=node;

//the node has no left child,look back

wile (当前节点!=tree-m_rootNode )

if (current node-m _ parent-m _ child 1!=currentNode )

返回当前节点- m _ parent;

else current node=current node-m _ parent;

}

返回空值;

}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。