前序中序,後序中序,層次遍歷和中序恢復二叉樹

2021-10-23 19:30:05 字數 1331 閱讀 9582

typedef struct btnode

btnode;

btnode *

createbt1

(char pre,

char in,

int l1,

int r1,

int l2,

int r2)

//前序和中序遍歷

s->lchild=

createbt1

(pre,in,l1+

1,l1+i-l2,l2,i-1)

; s-

>rchild=

createbt1

(pre,in,l1+i-l2+

1,r1,i+

1,r2)

;return s;

}

下圖配合理解其中的遞迴左右孩子的引數由來

//後序和中序遍歷

s->lchild=

createbt2

(post,in,l1,l1+i-l2-

1,l2,i-1)

; s-

>rchild=

createbt2

(post,in,l1+i-l2,r1-

1,i+

1,r2)

;return s;

}層次遍歷和中序遍歷恢復二叉樹

int

search

(char arr,

char key,

int l,

int r)

intgetsublevel

(char sublevel,

char level,

char in,

int n,

int l,

int r)

btnode *

createbt3

(char level,

char in,

int n,

int l,

int r)

//層次和中序遍歷

前序中序求後序 後序中序求前序層次 模板

這是資料結構的知識。剛開始先拒絕用指標去寫。當我把這個想法和別人分享是,別人說不喜歡用指標的程式設計師不是乙個好的c c 程式設計師。所以,就有了這麼勵志的時刻,我參考大牛的 自己用指標寫了個遍,直接1a 不用指標總是出現各種想不到的錯誤。心累。orz.include include include...

前序 中序 後序遍歷

先序遍歷也叫做 先根遍歷 前序遍歷,可記做根左右 二叉樹父結點向下先左後右 首先訪問根結點然後遍歷左子樹,最後遍歷右子樹。在遍歷左 右子樹時,仍然先訪問根結點,然後遍歷左子樹,最後遍歷右子樹,如果二叉樹為空則返回。例如,下圖所示二叉樹的遍歷結果是 abdecf 中序遍歷首先遍歷左子樹,然後訪問根結點...

前序中序後序遍歷

一道hulu的筆試題 how i wish yesterday once more 假設有棵樹,長下面這個樣子,它的前序遍歷,中序遍歷,後續遍歷都很容易知道。preorder gdafemhz inorder adefghmz postorder aefdhzmg 現在,假設僅僅知道前序和中序遍歷,...