[英]Red-Black Tree Insert - Recursion Issue - C++
我有一個在Red-Black Tree中實現的遞歸插入方法。 從遞歸調用返回后,我試圖查看本地根的子代是否為紅色。 但是實際上發生的是,我正在檢查樹的根,而不是子樹(最近插入的位置)。
這是我正在查看的代碼片段,它們位於insertNode方法內部:
this->insertNode(root->right, value);
if(root->right->is_red) {
cout << "color again & " << root->data << endl;
root->right->is_red = false;
root->is_red = true;
this->rotateLeft(root);
}
如何在上次插入發生的子樹的根上進行操作? 在從遞歸調用返回之前,是否需要確保已完成?
修改insertNode,使其返回實際插入的節點。 插入后,您將能夠輕松到達其父級(假設該節點知道其父級)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.