0
我正在嘗試執行OBST的預購遍歷並以文件格式打印出來。我正確地計算了OBST的成本和根矩陣。我也可以用正確的格式輸出樹節點,但我無法弄清楚如何顯示沒有孩子的父節點。從根矩陣預先遍歷OBST
根矩陣的什麼部分表示一個節點沒有孩子或只有一個孩子?我明白如何遍歷它,並正確地輸出節點,而不是沒有孩子的節點。例如:元素是{A,B,C,D},概率{10,20,40,30}。
我計算成本矩陣和根矩陣,然後使用根矩陣輸出一棵樹。它應該是這樣的:
C
B
A
_
_
_
D
_
_
礦看起來像這樣:
C
B
A
_
_
_
D
_
這是我的預購功能:
void PrintTree(int i, int j, int space)
{
if(i < j)
{
outfile.write("", space++);
outfile<<A[Rt[i][j]]<<endl;
PrintTree(i, Rt[i][j], space);
outfile.write("",space); //This line
outfile<<"-"<<endl; //This line
PrintTree(Rt[i][j] + 1, j, space);
}
}
我幾乎可以100%肯定行其間遞歸調用要麼是錯誤的,要麼不應該在那裏。基本上,我如何正確格式化這些破折號是不存在的孩子。
什麼是OBST – aaronman
最優二叉搜索樹對不起... – user2079828
我不好,抱歉,我來了不要認爲obst是一個廣泛使用的縮寫 – aaronman