二叉樹的後序遍歷

2021-10-10 04:39:31 字數 1326 閱讀 3881

#include

#include

#include

#define stackinitsize 20

//棧初始大小

#define addstack 10

// 棧追加大小

// 二叉樹

typedef

struct bitnode bitnode,

* bitree;

// 順序棧

typedef

struct sqstack sqstack;

// 棧的初始化,成功返回1,失敗返回0

intinitstack

(sqstack& s)

// 壓棧,失敗返回0,成功返回1

intpush

(sqstack& s, bitnode e)

*s.top = e;

s.top++

;// top在棧頂元素上乙個位置

return1;

}// 出棧,棧為空返回0,不為空返回1,e存放出棧結點

intpop

(sqstack& s, bitnode& e)

s.top--

; e =

*s.top;

return1;

}// 取棧頂元素,失敗返回0,成功返回1,e存放棧頂元素

intgettop

(sqstack s, bitnode& e)

e =*(s.top -1)

;return1;

}// 判斷棧是否為空,若為空則返回true,若為假則返回false

bool

stackempty

(sqstack s)

// 建立二叉樹,本質是利用先序遍歷的遞迴演算法建立二叉樹

void

creattree

(bitree& t)

}// 判斷兩個結點是否相等,相等返回true,否則返回false

bool

equal

(bitnode* e1, bitnode* e2)

// 後序遍歷二叉樹

intpostorder

(bitree t)

else

}free

(&s)

;return1;

}// 後序遍歷遞迴

二叉樹的後序遍歷

1 問題描述 給出一棵二叉樹,返回其節點值的後序遍歷。給出一棵二叉樹 1 2 3返回 3,2,1 2 問題實現 與前序遍歷 中序遍歷類似。若二叉樹為空,則空操作返回。否則後序遍歷根節點的左子樹,後序遍歷根節點的右子樹,訪問根節點。3 definition of treenode class tree...

二叉樹的後序遍歷

節點和樹類 public class treenode public treenode integer val override public string tostring public class tree 遞迴實現 public arraylistafter treenode node aft...

二叉樹的後序遍歷

如下圖表示一顆二叉樹,對它進行先序遍歷操作,採用兩種方法,遞迴和非遞迴操作。遍歷結果為 4526731。1 遞迴操作 思想 若二叉樹為空,返回。否則 1 後序遍歷右子樹 2 後序遍歷左子樹 3 遍歷根節點 void postorder bitree root 2 非遞迴操作 void postord...