二叉樹中根到葉子路徑中節點和等於給定值的路徑

2021-06-26 15:22:45 字數 1036 閱讀 3615

1. 描述

輸入乙個整數和一棵二元樹。從樹的根結點開始往下訪問一直到葉結點所經過的所有結點形成一條

路徑。列印出和與輸入整數相等的所有路徑。

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

10/    \

5      12

/    \ 

4      7

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

結點的儲存結構見《二叉樹的操作》中儲存結構部分。

演算法如下:

[cpp]view plain

copy

print?

#define n 50

binode *stack[n]; //定義棧儲存路徑上的結點指標

inttop = 0;  

void

findpath(binode *t, 

intsum, 

intcurrsum)   

else

currsum -= t->data;  

top--;  

}  

sum為給定的值,初始呼叫currsum為零。

**如下:

[cpp]view plain

copy

print?

#include "headfiles/binode.h"

#include "sharedsource/createbi_pre_in.c"

void

findpath(binode *t, 

intsum, 

intcurrsum);  

intmain(

void

)  ;  

char

in =  ;  

t = createbi_pre_in(pre, in, 0,0, 9);  

findpath(t, 17, 0);  

return

0;  

}  

列印二叉樹中根到所有葉子結點的路徑

輸入一批資料,以999作為結束資料,建立一顆二叉排序樹,通過遍歷輸出遞增排序結果,給出此二叉樹中根到所有葉子結點的路徑。分析可參照 求出二叉樹根節點到r節點之間的路徑 關鍵非遞迴的後序遍歷演算法 include stdio.h include malloc.h define len sizeof b...

二叉樹專題 輸出根節點到所有葉子節點的路徑

given a binary tree,return all root to leaf paths.for example,given the following binary tree 1 2 3 5 all root to leaf paths are 1 2 5 1 3 新建乙個名為array...

二叉樹 中序,後序,葉子節點,深度

已知乙個按先序序列輸入的字串行,如abc,de,g,f,其中逗號表示空節點 請建立二叉樹並按中序和後序方式遍歷二叉樹,最後求出葉子節點個數和二叉樹深度。input 輸入乙個長度小於50個字元的字串。output 輸出共有4行 第1行輸出中序遍歷序列 第2行輸出後序遍歷序列 第3行輸出葉子節點個數 第...