問題是:鑒于這種最花的:
如果我們有一個節點,我們如何獲得它的后代?
我認為這個演算法在談論讀取所有后代時非常有效,在寫作中增加了一些開銷(不是太多):
首先,為了簡化,假設根節點的數量限制為 N。然后我們需要存盤一個包含 N 個前素數的串列。當我們創建第一個節點時,我們會將串列 (3) 的第二個素數分配給一個欄位名稱 treeId,第二個根節點獲得第三個素數,依此類推(我們可以保留一個有多少根的計數器)。
要創建父級的子級,我們將獲取父級的 treeId 并遞回地乘以父級 treeId 的父級,然后乘以 2(第一個素數)。要知道 nodeId = k 的節點的所有后代,我們可以進行線性搜索并獲取所有 treeId 與 k 不同且可被 k 整除的節點。
我們可以洗掉N條記錄的限制,作為根創建另一個索引treeGroupId,這樣一個子節點將繼承父節點的相同treeGroupId,我們驗證兩個節點是否具有相同的treeGroupId,然后應用第一個驗證演算法。
我的問題是:這是搜索樹后裔的已知技術嗎?這個演算法有沒有流程。如果有我們能有更好的結果嗎?
uj5u.com熱心網友回復:
在素因子分解的背景關系中,一種已知的解決方案策略是使用所謂的因子樹。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/489531.html
上一篇:在C 中使用堆疊洗掉相等的數字