由先序遍歷和中序遍歷生成二叉樹

2021-09-13 20:43:43 字數 1162 閱讀 1839

生成演算法是遞迴的,對於先序序列來講,第乙個元素就是當前子樹的根節點,對於中序序列來講,每乙個中序序列都會被分割為兩個部分,這兩個部分就是下一次的要構造的子樹,所以說生成子樹的過程是自頂向下的

public

class

gentree

string

rootdata

=pre[0

];string

leftin

=new

string[10

];string

rightin

=new

string[10

];string

leftpre

=new

string[10

];string

rightpre

=new

string[10

];int

flag=0

;for

(inti=0;i

i++)if(

flag==0

)else}if

(root

==null

)else

rootnode

.lnode

=gen

(leftpre

,leftin

,flag

);rootnode

.rnode

=gen

(rightpre

,rightin,n

-flag-1

);return

rootnode;}

}class

node

class

main

;string

in=;gentree

gentree

=new

gentree

();gentree

.gen

(pre,in

,6);node

root

=gentree

.root

;show

(root);}

public

static

void

show

(node

node)}

}

??正文結束??

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

輸入二叉樹的先序遍歷序列和中序遍歷序列,輸出該二叉樹的後序遍歷序列。非建二叉樹版本 include includeusing namespace std string preord,inord void rebuild int preleft,int preright,int inleft,int ...

二叉樹 先序遍歷 中序遍歷 後續遍歷

package com.example.ljia.structure.tree import lombok.data author samlai description 遞迴 二叉樹 先序遍歷 中序遍歷 後續遍歷 先序遍歷 根 左 右 中序遍歷 左 根 右 後序遍歷 左 右 根 發現規律 這裡的順序...

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

從根部 a 開始,然後開始遍歷左子樹,直接找到 b 檢視 b 有沒有左子樹,有 d,再檢視 d 有沒有子樹,沒有,d 已經是葉子,所以第二個是 d。倒回去,取中 b,第三個數是 b。檢視 b 有沒有右子樹,有 e 檢視 e 有沒有子樹,有 g 左 h 右 所有後面三個數是 egh 先查左子樹,存在繼...