1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 二叉树 中序非递归遍历算法 c++

二叉树 中序非递归遍历算法 c++

时间:2020-10-29 20:24:31

相关推荐

二叉树 中序非递归遍历算法 c++

二叉树的中序非递归算法,详见下

首先,二叉树结点定义

typedef struct BiTNode//二叉树结点结构{string data;struct BiTNode *lchild,*rchild;} BiTNode,*BiTree;

中序非递归算法,代码如下

void Inorder_I(BiTree T)//中序的非递归遍历{stack<BiTNode*>s;BiTree p=T;while(p!=NULL||!s.empty())//栈不空或P不空时循环{if(p) //一路向左{s.push(p); //当前节点入栈p=p->lchild; //左孩子不空,一直往左走}else //出栈,并转向出栈节点的右子树{p=s.top();cout<<p->data; s.pop();//栈顶元素出栈,访问出栈节点p=p->rchild; //返回while循环继续进入if-else语句}}}

运行结果如下

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。