日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

[转载]二叉树先序、中序、后序三种遍历的非递归算法

發(fā)布時間:2024/4/17 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [转载]二叉树先序、中序、后序三种遍历的非递归算法 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

?

本貼給出二叉樹先序、中序、后序三種遍歷的非遞歸算法,此三個算法可視為標準算法。
1.先序遍歷非遞歸算法
#define maxsize 100
typedef struct
{
Bitree Elem[maxsize];
int top;
}SqStack;

void PreOrderUnrec(Bitree t)
{
SqStack s;
StackInit(s);
p=t;

while (p!=null || !StackEmpty(s))
{
while (p!=null)? ?? ?? ?? ? //遍歷左子樹
{
visite(p->data);
push(s,p);
p=p->lchild;? ?? ?
}//endwhile

if (!StackEmpty(s))? ?? ?? ?//通過下一次循環(huán)中的內(nèi)嵌while實現(xiàn)右子樹遍歷
{
p=pop(s);
p=p->rchild;? ?? ???
}//endif

}//endwhile

}//PreOrderUnrec

2.中序遍歷非遞歸算法
#define maxsize 100
typedef struct
{
Bitree Elem[maxsize];
int top;
}SqStack;

void InOrderUnrec(Bitree t)
{
SqStack s;
StackInit(s);
p=t;
while (p!=null || !StackEmpty(s))
{
while (p!=null)? ?? ?? ?? ? //遍歷左子樹
{
push(s,p);
p=p->lchild;
}//endwhile

if (!StackEmpty(s))
{
p=pop(s);
visite(p->data);? ?? ???//訪問根結(jié)點
p=p->rchild;? ?? ?? ?? ?//通過下一次循環(huán)實現(xiàn)右子樹遍歷
}//endif? ?

}//endwhile

}//InOrderUnrec


3.后序遍歷非遞歸算法
#define maxsize 100
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)? ?? ???//遍歷左子樹
{
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,表示右子樹訪問完畢,故訪問根結(jié)點? ?? ?
}

if (!StackEmpty(s))
{
s.Elem[s.top].tag =R;? ???//遍歷右子樹
p=s.Elem[s.top].ptr->rchild;? ?? ???
}? ?
}while (!StackEmpty(s));
}//PostOrderUnrec

轉(zhuǎn)載于:https://www.cnblogs.com/ppyyr/archive/2006/02/23/336508.html

總結(jié)

以上是生活随笔為你收集整理的[转载]二叉树先序、中序、后序三种遍历的非递归算法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。