[過去ログ] 【初心者歓迎】C/C++室 Ver.102【環境依存OK】 (1002レス)
前次1-
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
914
(1): 放置された蟻人間 ◆T6xkBnTXz7B0 [sage] 2018/06/23(土) 19:30:26 ID:QXtVRpnb(1) AAS
>>909
909(2): デフォルトの名無しさん [] 2018/06/23(土) 19:24:24 ID:8e5n022B(2/7) AAS
2分探索木を実装したC++プログラムを読んでいますが、分からないところに出くわしました。

ノードは以下のクラスです:

template <typename T> class BinNode {
private:
T data;
BinNode<T> *left, *right;
BinNode(T d, BinNode<T> *l = NULL, BinNode<T> *r = NULL);
friend class BinarySearchTree;
};

2分探索木のクラス BinarySearchTree 内のメンバ関数 insert の引数としてノードを渡すのですが、
なぜ、

BinNode<int>* tree

ではなく

BinNode<int>*& tree

となっているのかが分かりません。本の説明によると、木構造の変形を可能にするためにそうしているとのことです。

bool BinarySearchTree::insert(int data, BinNode<int>*& tree) {

}
void f(int *a) {
static int s_i = 0;
a = &s_i;
}
int main(void) {
int i = 3;
int *p = &i;
f(p);
printf("%d\n", *p);
return 0;
}
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.053s