1樓:匿名使用者
如果二叉樹是三叉連結串列儲存或者順序儲存,從2個結點向著根走,可以很快找到
如果是二叉連結串列儲存,可以使用非遞迴的後序遍歷,分別遍歷到這2個結點時,比較一下當時棧裡的情況就可以了
一棵樹,怎樣找到n個節點的公共父節點,最快的方法
2樓:
insertitem() ; 如果是跟節點 控制代碼傳空即可
如何計算兩個節點的公共父節點到兩個節點的最小距離
3樓:最愛秋天的傳說
由於有父節點指標,這道題目的難度一下子就降低了許多。
思路一:我們首先找到兩個節點的高度差,然後從較靠近根結點的一層開始向上找,若父節點為同一節點則該節點為解。
int getheight(treenode *node)return height;
}treenode* lowestcommonancestor(treenode* first,treenode* second)
} else
}while (first != second)return first;
}思路二:若允許浪費空間,那麼可以用兩個stack來儲存從first和second到根結點的各個節點,然後出棧時比較地址是否一致,最後一個地址一致的節點為解。
怎麼得到二叉樹的父節點
4樓:匿名使用者
那你定義節點的時候需要有指向父節點的指標
要不然就只有遞迴遍歷找了
5樓:悠藍天
bintnode* parent(bintree t, bintnode* n) else}
6樓:匿名使用者
用那個 遞迴方法
7樓:牛婉叢子舒
定義節點
候需要指向父節點指標要
遞迴遍歷找
8樓:曲荏海思菱
你要問的應該是如何得到t的節點n的父節點吧?
9樓:匿名使用者
|void parent( *t)}}}
二叉樹兩個結點的最近相同父節點怎麼求,有什麼演算法
10樓:匿名使用者
1. 面對這樣的場景,選擇父親孩子結構的方式組建二叉樹就很容易了。
2. 如果是普通的左右結內點結構組建的二叉樹容,那就遍歷吧。
int getfather(treenode *root, treenode *a, treenode *b)
}if (root == a || root == b)return 1 + num;
else
return num;}
若某完全二叉樹的深度為h,則該完全二叉樹中至少有多少個結點
2 h 1 1 1 2 h 1 前 n 1 層滿,第h層只有一結點 你沒錯,錯的是印刷,2h 1 1 明顯是 2 h 1 1 若一棵完全二叉樹有500個結點,則該二叉樹的深度為多少 深度為9。由二叉樹性質 具有n個節點的完全二叉樹的深度為 log2 內n 1 log2 500 8 8 1 9 比如 ...
設一棵完全二叉樹共有結點,則在該二叉樹中的葉子結點數
b 350 首先你得知bai 道什麼叫完全二du叉zhi樹!完全二叉樹 complete binary tree 若設二叉樹的高度為daoh,除第內 h 層外,其它各層 1 容h 1 的結點數都達到最大個數,第 h 層所有的節點都連續集中在最左邊,這就是完全二叉樹。完全二叉樹是由滿二叉樹而引出來的。...
已經二叉樹有葉子結點,則該二叉樹的總結點至少是
從根結點 n 0 開始,每層的最大結點數是 2 n由2 n 50 n 6 所以該二叉樹最少有6層 根結點算0層,最後一層有50個結點 所以總結點數是 2 0 2 1 2 2 2 3 2 4 2 5 50 113 完全二叉樹的形式總結點最少,2 5 50 2 6 所以子結點分佈在第6 7層,設第六層n...