演算法 二叉樹輸出根節點到某結點的路徑

2021-10-02 19:52:04 字數 897 閱讀 5038

分析(遞迴):

空樹,則查詢失敗,返回 false

當前結點為所要查詢的值,輸出結果,返回 true

以上條件不滿足,則向左找或向右找,找著了說明當前結點是根到x路徑上的點,輸出並返回 true

左右都找不到,查詢失敗,無此結點,返回 false

bool

printpath

(node* root,

int x)if(

printpath

(root-

>left, x)

||printpath

(root-

>right, x)

)return

false

;}

完整實現:

#include

using

namespace std;

struct node };

int pre=

, in=

;node*

create

(int prel,

int prer,

int inl,

int inr)

// 輸出從根節點到x的路徑

bool

printpath

(node* root,

int x)if(

printpath

(root-

>left, x)

||printpath

(root-

>right, x)

)return

false;}

intmain()

輸出結果:

8 5 4 1

二叉樹基本操作(輸出所有葉子節點到根節點的路徑)

功能 1 輸出二叉樹的所有葉子節點 2 輸出所有從葉子節點到根節點的路徑 3 輸出 2 中最長的一條路徑 日期 2015 11 28 include include typedef struct binodebinode,bitree void longestpath bitree t,char p...

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

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...

輸出所有根節點到葉子節點的長度 以二叉排序樹為例

cpp include include using namespace std 節點 struct node 二元查詢樹 class list void list m print node p,int value 向左右方向遞迴 m print p lchild,value m print p rc...