Tree UVA 548(二叉樹遞迴遍歷)

2022-05-06 15:39:09 字數 762 閱讀 4581

題目大意:給一顆點帶權(權值各不相同,都是小於10000的正整數)的二叉樹的中序遍歷和後序遍歷,找乙個葉子結點使得它到根的路徑上的權值和最小。如果有多個解,該葉子本身的權值應盡量小。輸入中每兩行表示一棵樹,其中第一行為中序遍歷,第二行為後續遍歷。

看**:

#include#include

#include

#include

#include

#include

using

namespace

std;

const

int maxv=10000+5

;int

in_order[maxv],post_order[maxv],lch[maxv],rch[maxv];

intn;

int best,best_sum;//

目前為止最優解和對應的權值和

bool read_list(int *a)

int build(int l1,int r1,int l2,int

r2)void dfs(int u,int

sum)

}if(lch[u]) dfs(lch[u],sum);

if(rch[u]) dfs(rch[u],sum);

}int

main()

return0;

}

二叉樹的遍歷)Tree UVa 548

給一棵點帶權 權值各不相同,都是小於10000的正整數 的二叉樹的中序和後序遍 歷,找乙個葉子使得它到根的路徑上的權和最小。如果有多解,該葉子本身的權應盡量小。輸入中每兩行表示一棵樹,其中第一行為中序遍歷,第二行為後序遍歷。樣例輸入 3 2 1 4 5 7 6 3 1 2 5 6 7 4 7 8 1...

二叉樹遞迴遍歷 UVa548樹

題目 給一棵點帶權 權值各不相同,都是小於10000的正整數 的二叉樹的中序和後序遍歷,找乙個葉子使得它到根的路徑上的權值和最小。如果有多解,該葉子本身的權應盡量小。輸出中每兩行表示一棵樹,其中第一行為中序遍歷,第二行為後序遍歷。樣例輸入 3 2 1 4 5 7 6 3 1 2 5 6 7 4 7 ...

UVa 548 二叉樹的遞迴遍歷 dfs)

題意 給一顆點帶權 權值各不相同,都是小於10000的正整數 的二叉樹的中序和後序遍歷,找乙個葉子使得它到根的路徑上的權和最小。如果有多解,該葉子本身的權應盡量小。輸入中每兩行表示一棵樹,其中第一行為中序遍歷,第二行為後序遍歷。首先介紹下二叉樹的三種遍歷 首先我想先改變這幾個遍歷的名字 前根序遍歷,...