- 相關(guān)推薦
后序遍歷非遞歸算法
后序遍歷非遞歸算法
#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; //標(biāo)記為左子樹
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
【后序遍歷非遞歸算法】相關(guān)文章:
遞歸實現(xiàn)回文判斷09-27
程序員遞歸面試問題及解析09-09
除夕算不算法定假日09-21
格言警句解析:非儉無以養(yǎng)廉,非廉無以養(yǎng)德09-20
介紹一下如何利用路徑遍歷進行攻擊及如何防范筆試題目08-21
面試的非語言交流技巧10-06
非侵權(quán)保證書08-29
非北京戶口買車10-07
任正非的員工激勵法則10-02