下载此文档

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


文档分类:IT计算机 | 页数:约11页 举报非法文档有奖
1/11
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/11 下载此文档
文档列表 文档介绍

: .
二叉树前序、中序、后序三种遍历的非递归算法
D
{
p=pop(s);
visite(p->data); //·ÃÎʸù½áµã
p=p->rchild; //ͨ¹ýÏÂÒ»´ÎÑ­»·ÊµÏÖÓÒ×ÓÊ÷±éÀú
}//endif

}//endwhile
}
3.ºóÐò±éÀú·ÇµÝ¹éËã·¨
typedef enum{L,R} tagtype;
typedef struct
{
Bitree ptr;
tagtype tag;
}stacknode;
typedef struct
{
stacknode Elem[maxsize];
int top;
}SqStack;
void PostOrderUnrec(Bitree t)
{
SqStack s;
stacknode x;
StackInit(s);
p=t;

do
{
while (p!=null) //±éÀú×ó×ÓÊ÷
{
= p;
= L; //±ê¼ÇΪ×ó×ÓÊ÷
push(s,x);
p=p->lchild;
}

while (!StackEmpty(s) && [].tag==R)
{
x = pop(s);
p = ;
visite(p->data); //tagΪR£¬±íʾÓÒ×ÓÊ÷·ÃÎÊÍê±Ï£¬¹Ê·ÃÎʸù½áµã
}

if (!StackEmpty(s))
{
[].tag =R; //±éÀúÓÒ×ÓÊ÷
p=[].ptr->rchild;
}
}while (!StackEmpty(s));
}//PostOrderUnrec
¶þ¡£Ç°Ðò×î¼ò½àËã·¨
void PreOrderUnrec(Bitree *t)
{
Bitree *p;
Stack s;
(t);
while (!())
{
(p);
visit(p->data);
if (p->rchild != NULL) (p->rchild);
if (p->lchild != NULL) (p->lchild);
}
}
Èý¡£ºóÐòËã·¨Ö®¶þ
void BT_PostOrderNoRec(pTreeT root)
{
stack<treeT *> s;
pTreeT pre=NULL;
while ((NULL != root) || !())
{
if (NULL != root)
{
(root);
root = root->left;
}
else
{
root = ();
if (root->right!=NULL && pre!=root->right)
{
root=root->right;
}
else
{
root=pre=();
visit(root);
();
root=NULL;
}
}
}
}
Ò»¸ö±È½ÏÈÝÒ×Àí½âµÄºóÐò±éÀú:
void PostOrder(Bitree *t)
{
TreeNode *node = NULL,*last = NULL;

二叉树前序、中序、后序三种遍历的非递归算法 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数11
  • 收藏数0 收藏
  • 顶次数0
  • 上传人916581885
  • 文件大小2.31 MB
  • 时间2021-08-09
最近更新