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