C語言實現(xiàn)找出二叉樹中某個值的所有路徑的方法
更新時間:2014年09月16日 16:25:48 投稿:shichen2014
這篇文章主要介紹了C語言實現(xiàn)找出二叉樹中某個值的所有路徑的方法,針對數(shù)據(jù)結(jié)構(gòu)中二叉樹的實用操作技巧,需要的朋友可以參考下
本文實例講述了C語言實現(xiàn)找出二叉樹中某個值的所有路徑的方法,是非常常用的一個實用算法技巧。分享給大家供大家參考。
具體實現(xiàn)方法如下:
#include <iostream> #include <vector> #include <iterator> #include <algorithm> using namespace std; vector<int> result; struct Node { Node(int i = 0, Node *pl = NULL, Node *pr = NULL) : data(i), left(pl), right(pr) {} int data; Node *left; Node *right; }; Node* Construct() { Node *node4 = new Node(7); Node *node3 = new Node(4); Node *node2 = new Node(12); Node *node1 = new Node(5, node3, node4); Node *root = new Node(10, node1, node2); return root; } void print() { copy(result.begin(), result.end(), ostream_iterator<int>(cout, " ")); cout << endl; } void PrintSum(Node *root, int sum) { if(root == NULL) return; result.push_back(root->data); if(root->left == NULL && root->right == NULL && root->data == sum) { print(); } PrintSum(root->left, sum - root->data); PrintSum(root->right, sum - root->data); result.pop_back(); } void main() { Node *root = Construct(); PrintSum(root, 22); }
感興趣的朋友可以測試運行一下本文實例。相信本文所述算法對大家C程序算法設(shè)計的學(xué)習(xí)有一定的借鑒價值。
相關(guān)文章
C語言關(guān)于二叉樹中堆的創(chuàng)建和使用整理
大家好,這里是針對二叉樹中堆結(jié)構(gòu)的順序儲存,整理出來一篇博客供我們一起復(fù)習(xí)和學(xué)習(xí),如果文章中有理解不當(dāng)?shù)牡胤?還希望朋友們在評論區(qū)指出,我們相互學(xué)習(xí),共同進步2022-08-08使用mmap實現(xiàn)大文件的復(fù)制(單進程和多進程)
這篇文章主要為大家詳細(xì)介紹了使用mmap實現(xiàn)大文件的復(fù)制,單進程與多進程的兩種情況,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-10-10新手向超詳細(xì)的C語言實現(xiàn)動態(tài)順序表
本文主要介紹了C語言實現(xiàn)動態(tài)順序表,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-09-09C++設(shè)計模式之簡單工廠模式的實現(xiàn)示例
這篇文章主要給大家介紹了關(guān)于C++設(shè)計模式之簡單工廠模式的相關(guān)資料,簡單工廠模式,主要用于創(chuàng)建對象,添加類時,不會影響以前的系統(tǒng)代碼,需要的朋友可以參考下2021-06-06C語言驅(qū)動開發(fā)內(nèi)核特征碼掃描PE代碼段
這篇文章主要為大家介紹了C語言驅(qū)動開發(fā)內(nèi)核特征碼掃描PE代碼段,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-10-10