求二叉樹某個結點的祖先

2021-08-14 02:29:13 字數 436 閱讀 6552

考試做到這一題,當時寫的很亂,這讓我很煩,題目就是在二叉樹查詢某個值的結點,如果找到則輸出該節點的所有祖先,那我當時想到的就是用後序遍歷的非遞迴演算法,如果找到的話,棧中的所有元素就是該節點的祖先,不過後序遍歷的話需要用乙個標記記錄棧頂元素,第一次訪問棧頂的元素的時候不出棧,第二次訪問棧頂元素的時候再出棧,今天我想起來,大概寫了一下**,可能不完全正確,但是能表達我的想法了,**如下:

typedef struct*stack;

void findvalue(elemtype x,bitree p)

if(s.top()->p->data=x)

}else if(s.top()->first!=true)

else if(s.top()->first==true)

}}

考試寫的也差不多,希望老師能給個80%的分吧,嘿嘿

ACM A 二叉樹結點公共祖先

乙個順序儲存的完全二叉樹 1 2 3 4 5 6 7 任意給定兩結點的編號,求兩結點最近的公共祖先。每組資料一行,為空格隔開的兩個數i和j,皆為32位有符號正整數 每組資料對應一行,為編號為i和j的結點的最近公共祖先的編號 4 5 4 7 2 1程式設計的時候注意考慮所有情況,要不可能一直在迴圈裡導...

二叉樹結點的共同祖先問題

問題描述 假設二叉樹採用二叉鍊錶方式儲存,root指向根結點,p所指結點和q所指結點為二叉樹中的兩個不同結點,且互不成為根到該結點的路徑上的點,程式設計求解距離它們最近的共同祖先。輸入形式 二叉樹的前序和中序遍歷序列,用以建立該二叉樹的鏈式儲存結構 以及二叉樹的兩個結點資料 x 和 y 輸出形式 結...

求二叉樹的雙親結點

思路就是如果當前任乙個孩子結點的值等於k,說明當前節點即為所需結點的雙親結點,通過遞迴實現唯一比較麻煩的是要寫很多條件,不然會報錯。主要功能實現是preorder函式其他是構建和列印二叉樹的函式。include include include using namespace std define t...