二叉树前序、中序、后序三种遍历的非递归算法.doc

二叉树前序、中序、后序三种遍历的非递归算法.doc

ID:61904194

大小:25.50 KB

页数:5页

时间:2021-03-26

二叉树前序、中序、后序三种遍历的非递归算法.doc_第1页
二叉树前序、中序、后序三种遍历的非递归算法.doc_第2页
二叉树前序、中序、后序三种遍历的非递归算法.doc_第3页
二叉树前序、中序、后序三种遍历的非递归算法.doc_第4页
二叉树前序、中序、后序三种遍历的非递归算法.doc_第5页
资源描述:

《二叉树前序、中序、后序三种遍历的非递归算法.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Ò»¡£½Ì¿ÆÊé±ê×¼Ëã·¨1.ÏÈÐò±éÀú·ÇµÝ¹éËã·¨voidPreOrderUnrec(Bitree*t){Stacks;StackInit(s);Bitree*p=t;while(p!=NULL

2、

3、!StackEmpty(s)){while(p!=NULL)//±éÀú×ó×ÓÊ÷{visite(p->data);push(s,p);p=p->lchild;}if(!StackEmpty(s))//ͨ¹ýÏÂÒ»´ÎÑ»·ÖеÄÄÚǶwhileʵÏÖÓÒ×ÓÊ÷±éÀú{p=pop(s);

4、p=p->rchild;}//endif}//endwhile}2.ÖÐÐò±éÀú·ÇµÝ¹éËã·¨voidInOrderUnrec(Bitree*t){Stacks;StackInit(s);Bitree*p=t;while(p!=NULL

5、

6、!StackEmpty(s)){while(p!=NULL)//±éÀú×ó×ÓÊ÷{push(s,p);p=p->lchild;}if(!StackEmpty(s)){p=pop(s);visite(p->data);//·ÃÎʸù½áµãp=p->rchild;//ͨ¹

7、ýÏÂÒ»´ÎÑ»·ÊµÏÖÓÒ×ÓÊ÷±éÀú}//endif}//endwhile}3.ºóÐò±éÀú·ÇµÝ¹éËã·¨typedefenum{L,R}tagtype;typedefstruct{Bitreeptr;tagtypetag;}stacknode;typedefstruct{stacknodeElem[maxsize];inttop;}SqStack;voidPostOrderUnrec(Bitreet){SqStacks;stacknodex;StackInit(s);p=t;do{while(p!=

8、null)//±éÀú×ó×ÓÊ÷{x.ptr=p;x.tag=L;//±ê¼ÇΪ×ó×ÓÊ÷push(s,x);p=p->lchild;}while(!StackEmpty(s)&&s.Elem[s.top].tag==R){x=pop(s);p=x.ptr;visite(p->data);//tagΪR£¬±íʾÓÒ×ÓÊ÷·ÃÎÊÍê±Ï£¬¹Ê·ÃÎʸù½áµã}if(!StackEmpty(s)){s.Elem[s.top].tag=R;//±éÀúÓÒ×ÓÊ÷p=s.Elem[s.top].ptr->r

9、child;}}while(!StackEmpty(s));}//PostOrderUnrec¶þ¡£Ç°Ðò×î¼ò½àËã·¨voidPreOrderUnrec(Bitree*t){Bitree*p;Stacks;s.push(t);while(!s.IsEmpty()){s.pop(p);visit(p->data);if(p->rchild!=NULL)s.push(p->rchild);if(p->lchild!=NULL)s.push(p->lchild);}}Èý¡£ºóÐòËã·¨Ö®¶þvoidBT_Po

10、stOrderNoRec(pTreeTroot){stacks;pTreeTpre=NULL;while((NULL!=root)

11、

12、!s.empty()){if(NULL!=root){s.push(root);root=root->left;}else{root=s.top();if(root->right!=NULL&&pre!=root->right){root=root->right;}else{root=pre=s.top();visit(root);s.pop();root=NULL;}}}}

13、Ò»¸ö±È½ÏÈÝÒ×Àí½âµÄºóÐò±éÀú:voidPostOrder(Bitree*t){TreeNode*node=NULL,*last=NULL;Stacks;s,Init();s.push(t);while(!s.IsEmpty()){node=s.pop();if(last==node->left

14、

15、last==node->right)//×óÓÒ×ÓÊ÷ÒѾ·ÃÎÊÍêÁË£¬¸Ã·ÃÎʸù½ÚµãÁË{visit(node);last=node;}elseif(node->left

16、

17、node-

18、>right)//×óÓÒ×ÓÊ÷δ·ÃÎÊ£¬µ±Ç°½ÚµãÈëÕ»£¬×óÓÒ½ÚµãÈëÕ»{s.push(node);if(node->right)s.push(node->right);if(node->left)s.push(node->left);}else//µ±Ç°½ÚµãΪҶ

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。