根據前序遍歷和中序遍歷結果重建二叉樹(遞迴方法)

2021-07-23 23:59:09 字數 727 閱讀 8923

假設已經有了前序遍歷和中序遍歷的結果,如何重建這棵樹呢?

給定函式定義如下:

void

rebuild(

char

*ppreorder, //前序遍歷結果

char

*pinorder, //中序遍歷結果

intntreelen, //樹的長度

node

**proot) //返回node**型別

用遞迴的方法解法如下:

#include 

<

iostream

>

using

namespace

std;

struct

node;

intgetpos(

char

*str,

char

ch) }

return-1

;}void

rebuild(

char

*ppreorder,

char

*pinorder,

intntreelen, node

**proot)

呼叫示例:

void

postorderretrieval(node

*root) //後序遍歷樹

intmain()

根據前序遍歷和中序遍歷的結果重建二叉樹

題目 輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。例如輸入前序遍歷序列和中序遍歷序列,則重建二叉樹並返回。為便於理解,重建出的二叉樹如下 python 如下 class treenode def init self,x self.v...

根據前序遍歷和中序遍歷得出後序遍歷

首先要明確前序,中序和後序的遍歷順序 前序 父節點,左子節點,右子節點 中序 左子節點,父節點,右子節點 後序 左子節點,右子結點,父節點 明確之後,首先根據前序遍歷,確定整個二叉樹的根節點 前序的第乙個節點 再通過中序遍歷,可以直接根據根節點將整個二叉樹分為左右兩顆子樹.這時再逐步根據前序和中序順...

根據前序和中序遍歷結果重建二叉樹

前序遍歷 根節點 左子樹 右子樹 中序遍歷 左孩子 根節點 右子樹 根據前序遍歷的特性可以得知 1.前序遍歷後的第乙個節點就是這棵樹的根節點。2.根據中序遍歷找到根節點後,其左邊的節點都是根節點的左子樹,其右邊的節點都是根節點的右子樹。3.用遞迴的方式將根節點的左子樹和右子樹分別看成是一棵樹。對於遞...