這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)碛嘘P(guān)如何算出python二叉樹的前序遍歷和中序遍歷,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
創(chuàng)新互聯(lián)是一家專業(yè)提供金平企業(yè)網(wǎng)站建設(shè),專注與成都做網(wǎng)站、成都網(wǎng)站建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)、H5建站、小程序制作等業(yè)務(wù)。10年已為金平眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站制作公司優(yōu)惠進(jìn)行中。
思路:看見二叉樹的算法題首先想到的就是 遍歷
既然給定了前序遍歷和中序遍歷 ,那我就每次算出左子樹的前序遍歷和中序遍歷 ,右子樹的前序遍歷和中序遍歷
主程序
int len = pre.length;
if(len == 0){
return null;
}
else{
TreeNode tnode = new TreeNode(pre[0]);
int loc = getindex(pre[0], in);
int[] preL = getsubarr(1, loc, pre); // 左子樹的前序遍歷
int[] preR = getsubarr(0, loc-1, in); // 左子樹的中序遍歷 兩者的長(zhǎng)度相等
int[] inL = getsubarr(loc+1,len-1, pre); // 右子樹的前序遍歷
int[] inR = getsubarr(loc+1,len-1, in); // 右子樹的中序遍歷 兩者的長(zhǎng)度相等
tnode.left = getarr(preL, preR);
tnode.right = getarr(inL, inR);
return tnode;
}
# 定義一個(gè) 給定序列和目標(biāo)值,找到目標(biāo)值在序列中的索引的函數(shù)
public int getindex(int target, int[] array){
int len = array.length;
for(int i=0; i< len; i++){
if(target == array[i];
return i
}
}
定義一個(gè)給定 數(shù)組 起始 和終止 下標(biāo) 給出該數(shù)組相應(yīng)的字段
public int[] getsubarr(int start, int end, int[] arr){
int[] sub = new int[end-start+1];
for(int i=start; i<=end; i++){
sub[i-start] = arr[i]
}
return sub;
}
上述就是小編為大家分享的如何算出python二叉樹的前序遍歷和中序遍歷了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
網(wǎng)頁標(biāo)題:如何算出python二叉樹的前序遍歷和中序遍歷
URL鏈接:http://chinadenli.net/article8/gshiip.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供響應(yīng)式網(wǎng)站、標(biāo)簽優(yōu)化、網(wǎng)站營(yíng)銷、網(wǎng)站建設(shè)、定制網(wǎng)站、App設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)