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

2021-06-27 22:48:03 字數 1174 閱讀 9557

題目:輸入乙個整數和一棵二元樹。

從樹的根結點開始往下訪問一直到葉結點所經過的所有結點形成一條路徑。

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

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

10   

/ \   

5 12   

/ \   

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

#include "stdlib.h"

#include "stdio.h"

typedef struct btnode

btnode;

btnode *createtree(int pre, int in, int l1, int r1, int l2, int r2)

} s->data = in[i];

s->lnode = createtree(pre, in, l1+1, l1+i-l2, l2, i-1);

s->rnode = createtree(pre, in, l1+i-l2+1, r1, i+1, r2);

return s;

}void preprint(btnode *p)

}void inprint(btnode *p)

}typedef struct mystackmystack;

void findsumpath(btnode *p, mystack &mystack, int targetsum, int ¤tsum)

putchar('\n');

} findsumpath(p->lnode, mystack, targetsum, currentsum);

findsumpath(p->rnode, mystack, targetsum, currentsum);

currentsum -= p->data;

--mystack.top;

}void main();

int in = ;

btnode *p;

p = createtree(pre, in, 0, 4, 0, 4);

mystack st;

st.top = -1;

int currentsum = 0;

findsumpath(p, st, 22, currentsum);

}

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

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

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

題目 輸入乙個整數和一棵二元樹。從樹的根結點開始往下訪問一直到葉結點所經過的所有結點形成一條路徑。列印出和與輸入整數相等的所有路徑。例如 輸入整數22和如下二元樹 10 5 12 4 7 則列印出兩條路徑 10,12和10,5,7。此方法用了雙向鍊錶來儲存路徑,當然也可以用容器vector來構造佇列...

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

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