在二元樹中找出和為某一值的所有路徑

2021-05-23 15:10:47 字數 953 閱讀 9293

題目:輸入乙個整數和一棵二元樹。從樹的根結點開始往下訪問一直到葉結點所經過的所有結點形成一條路徑。列印出和與輸入整數相等的所有路徑。

例如: 輸入整數22和如下二元樹

10   

/    /   

5    12   

/   /   

4    7

則列印出兩條路徑:10, 12和10, 5, 7。

此方法用了雙向鍊錶來儲存路徑,當然也可以用容器vector來構造佇列結構來儲存路徑。

#include using namespace std;

struct binarytreenode // a node in the binary tree

;//列印路徑

void printpath(binarytreenode *path);

/** *sum為要求的整數和

*cursum為從根節點到tree父節點,路徑上所有數的和

*path指向當前路徑的最後乙個節點,該路徑有binarytreenode組成雙向鍊錶

**/void searchpath(binarytreenode *tree,binarytreenode *path,int cursum,int sum)

if(cursum==sum)

//若當前路徑的和=sum,但路徑還未到達葉節點,此路徑不可行

delete node;

return; }

//cursumm_pleft!=null)

searchpath(tree->m_pleft,path,cursum,sum);

if(tree->m_pright!=null)

searchpath(tree->m_pright,path,cursum,sum);

delete node;

}void printpath(binarytreenode *path)

cout<

在二元樹中找出和為某一值的所有路徑

4.在二元樹中找出和為某一值的所有路徑 題目 輸入乙個整數和一棵二元樹。從樹的根結點開始往下訪問一直到葉結點所經過的所有結點形成一條路徑。列印出和與輸入整數相等的所有路徑。例如 輸入整數22和如下二元樹 10 5 12 4 7則列印出兩條路徑 10,12和10,5,7。c codes as belo...

在二元樹中找出和為某一值的所有路徑

1.題目 在二元樹中找出和為某一值的所有路徑 題目 輸入乙個整數和一棵二元樹。從樹的根結點開始往下訪問一直到葉結點所經過的所有結點形成一條路徑。列印出和與輸入整數相等的所有路徑。例如 輸入整數22和如下二元樹 10 5 12 4 7則列印出兩條路徑 10,12和10,5,7。二元樹節點的資料結構定義...

在二元樹中找出和為某一值的所有路徑

在二元樹中找出和為某一值的所有路徑 題目 輸入乙個整數和一棵二元樹。從樹的根結點開始往下訪問一直到葉結點所經過的所有結點形成一條路徑。列印出和與輸入整數相等的所有路徑。例如 輸入整數22和如下二元樹 10 5 12 4 7則列印出兩條路徑 10,12和10,5,7。二元樹節點的資料結構定義為 str...