1302 PIPI的族譜(二叉樹)

2021-10-02 14:36:03 字數 1117 閱讀 6349

題目描述

pipi最近在看家裡的族譜,發現族譜剛好組成了一棵二叉樹,現在pipi想詢問族譜中的兩個結點是否為兄弟或者堂兄弟。 

兄弟: 深度相同, 雙親節點相同(同乙個結點不能是兄弟)。 

堂兄弟: 深度相同,雙親節點不同。 

輸入

第一行按照先序輸入族譜代表的二叉樹,其中空節點用 -1 表示。 

第二行輸入兩個數字 x y,代表詢問的兩個結點的值。 

輸出

若詢問的兩個結點是兄弟,輸出"brother" , 若詢問的兩個結點是堂兄弟,輸出"cousin" ,否則輸出"other relathionship" 

(relationship寫錯了 , 請同學們直接複製"other relathionship") 

樣例輸入

1 2 -1 4 -1 -1 3 -1 5 -1 -1

4 5

樣例輸出

cousin
#include#includeusing namespace std;

typedef struct binode*bitree;

//建立一棵二叉樹

void createtree(bitree &t)else

}}

//獲取x父結點所在層次和父結點的值

void findnode(char x, bitree t,bitree father,bitree &father_need,int height,int &height_need)else

findnode(x, t->lchild, father, father_need,height + 1,height_need);

findnode(x, t->rchild, father, father_need,height + 1,height_need); }}

int main(void)elseelse

}else

} return 0;

}

二叉樹 二叉樹

題目描述 如上所示,由正整數1,2,3 組成了一顆特殊二叉樹。我們已知這個二叉樹的最後乙個結點是n。現在的問題是,結點m所在的子樹中一共包括多少個結點。比如,n 12,m 3那麼上圖中的結點13,14,15以及後面的結點都是不存在的,結點m所在子樹中包括的結點有3,6,7,12,因此結點m的所在子樹...

樹 二叉樹 滿二叉樹 完全二叉樹 完滿二叉樹

目錄名稱作用根 樹的頂端結點 孩子當遠離根 root 的時候,直接連線到另外乙個結點的結點被稱之為孩子 child 雙親相應地,另外乙個結點稱為孩子 child 的雙親 parent 兄弟具有同乙個雙親 parent 的孩子 child 之間互稱為兄弟 sibling 祖先結點的祖先 ancesto...

二叉樹 48 二叉樹 二叉樹的高度

目的 使用c 模板設計並逐步完善二叉樹的抽象資料型別 adt 內容 1 請參照鍊錶的adt模板,設計二叉樹並逐步完善的抽象資料型別。由於該環境目前僅支援單檔案的編譯,故將所有內容都集中在乙個原始檔內。在實際的設計中,推薦將抽象類及對應的派生類分別放在單獨的標頭檔案中。參考教材 課件,以及網盤中的鍊錶...