1. 程式人生 > >C 二叉樹查詢值為x的節點,並列印其所有的父節點

C 二叉樹查詢值為x的節點,並列印其所有的父節點

思路就跟輸出二叉樹一樣的,只不過這次是找節點

文章目錄

查詢節點

//找一個值為x的節點
BiThrTree findElement(BiThrTree T, ElementType x){
    
    if (!T)
        return NULL;
    if (T->data == x){
        return T;
    }
    else
    {
        BiThrTree temp;
        //先看下左邊找到了沒有
        temp =
findElement(T->LeftTreeNode, x); //沒有找到那就看看右邊 if(!temp){ return findElement(T->RightTreeNode, x); } //這個跟輸出不一樣,得有個指標來接收。 return temp; } return NULL; }

輸出此節點所有的父節點

遞迴的魅力,真是巧妙

//列印X節點所有父節點
int putRootofx(BiThrTree T, ElementType x){
	//沒有就返回0
if(!T) return 0; //找到了就返回1 if(T->data == x){ return 1; } //這個節點有值但不是要找到那個,那就往它的子節點下面看看 if(T){ //只要子節點裡面有符合條件的,那就將其輸出出來 if(putRootofx(T->LeftTreeNode, x) || putRootofx(T->RightTreeNode, x)){ printf("%c ",T->data); return
1; } } return 0; }