檢索樹 刪除演算法

2021-10-07 14:54:07 字數 676 閱讀 3437

為了記錄下檢索樹刪除演算法,我來發個部落格開心一下。

如何刪除檢索樹中的元素?

想要刪除檢索樹中的結點,步驟:

找到要刪除結點

刪除結點

if (x < q->data) //向左搜尋

else //向右搜尋

}if (!p) //未找到

return 0;

if (!p->rson) //p沒有右兒子,用左兒子代替p

else //如果p是其父結點的右兒子

}if (!p->lson) //p沒有左兒子,用右兒子代替p

else //如果p是其父結點的右兒子

}else //p有兩個兒子,用中序前驅代替p

else //左兒子s有右兒子,查詢p的左兒子的最右子孫r

p->data = r->data; //用r的值域代換p的值域

s->rson = r->lson; //刪去r

delete r;}}

return 1; //返回刪除成功資訊

} //函式結束

向量檢索演算法

通常來說,面向向量的相似性檢索的方法分為精確檢索和近似檢索兩類。精確檢索的本質就是線性查詢。線性查詢通過在整個向量空間內,遍歷所有已存向量計算其與檢索向量的距離,通常是計算歐幾里德距離或者點積。歐氏距離最近的向量或者點積最大的向量就是相似度最高的向量。線性查詢演算法簡單,不需要建立額外的資料結構和儲...

二叉檢索樹中插入和刪除操作

二叉排序樹的相關操作實現 include includetypedef struct node node,bstree 在指標ptree所指的二叉排序樹中遞迴查詢關鍵字為key的元素,若查詢成功,則返回指向該元素節點的指標,否則返回null bstree search bstree ptree,in...

多維檢索樹KD Tree

k 維檢索樹類似於二叉檢索樹,不同的是,它能同時提供多維度屬性的檢索。k維 從 0開始計維數 檢索樹的定義 k維檢索樹是乙個 n層的二叉樹 根節點為第 0層,依次往下為第 1,2.n 1 層 對於樹中第 n層的每個節點,其左子樹所有節點的第 n k維屬性小於或等於該節點的第 n k維屬性 其右子樹所...