二叉樹前序遍歷

2021-09-28 21:56:02 字數 798 閱讀 5166

樹的前序遍歷:根左右

可以設計乙個棧來實現:

首先讓根root入棧,然後root出棧,pop掉棧頂的元素,列印root,然後把root的右孩子入棧,左孩子入棧,讓棧頂的元素變成新的root,pop掉棧頂的元素,列印root,然後把root的右孩子入棧,左孩子入棧,重複此步驟

#include

#include

#include

using

namespace std;

typedef

struct node binode,

*bitree;

//*bitree表示指向結構體的指標,binode表示這個結構體

void

preordernotrecursion

(bitree root)

if(root-

>left)}}

}int i =-1

;//先序遞迴建立樹,建立的樹如上圖

void

createtree

(bitree *root)

//*取出

;//int a = ;

int a=

;++i;

if(a[i]==0

)//為代表當前節點為空

(*root)

=null

;else

}int

main()

LeetCode基礎 二叉樹 前序遍歷

前序 根 左 右 遞迴實現 public class solution return result 非遞迴實現 建立乙個棧,把 root 結點入棧。棧不為空時就執行下面的流程。2.1.從棧中彈出乙個元素,並輸出這個元素。2.2.把彈出元素的右子結點入棧。2.3.把彈出元素的左子結點入棧。public...

前序建立二叉樹 前序 中序 後序遍歷二叉樹

二叉樹的建立 如果要在記憶體中建立乙個如下左圖這樣的樹,wield 能讓每個結點確認是否有左右孩子,我們對它進行擴充套件,變成如下右圖的樣子,也就是將二叉樹中的每個結點的空指標引出乙個虛結點,其值為乙個特定值,比如 稱之為擴充套件二叉樹。擴充套件二叉樹就可以做到乙個遍歷序列確定一棵二叉樹了。如前序遍...

二叉樹 前序遍歷 中序遍歷 後序遍歷

前序遍歷 dlr 是二叉樹遍歷的一種,也叫做先跟遍歷,先序遍歷,前序周遊,可記做根左右。前序遍歷首先訪問根節點然後遍歷左子樹,最後遍歷右子樹。前序遍歷首先訪問根節點然後遍歷左子樹,最後遍歷右子樹。在遍歷左 右子樹時,仍然先訪問根節點,然後遍歷左子樹,最後遍歷右子樹。若二叉樹為空則結束返回,否則 1 ...