私はバイナリ検索クラスを持っています。私は特別なノードを削除するための関数を書こうとしていますが、わかりません。 基本的なクラスがある:bstツリーの削除
class Node {
friend class Tree;
private:
long long rep;
Node *left, *right;
string data;
public:
Node(string d)
: data(d), left(NULL), right(NULL), rep(1) {}
};
class Tree {
private:
Node *root;
public:
void delete_node(Node *cur , string s);
void delete_node_helper(string s);
};
最良の方法は、スマートポインタを 'Node *'の代わりに 'std :: unique_ptr'として使用することです。 –
Jarod42
ノードをどのように正確に削除したいですか?プレースホルダで置き換えるか、実際に削除しますか?この削除後にツリーの再バランスを行う必要がありますか?予想される漸近複雑さは何ですか? – alexeykuzmin0
そして 'rep'とは何ですか? rep3: – alexeykuzmin0