我想避免重蹈我的if-else兩次(一次離開,一旦右,相同),所以我這樣做,這感覺很unidiomatic:與樹的左右孩子在C++中避免重複
MovieNode** child = title < parent->title ? &parent->left : &parent->right;
if(*child)
parent = *child;
else
*child = new MovieNode(ranking, title, releaseYear, quantity);
這樣做的正確方法是什麼?
[順便說一句,這就是爲什麼我喜歡哈斯克爾XD,我只想做parent = child
]
那麼你在想什麼是單向性? –
我認爲在你的代碼中有一個錯誤:'* child'的類型是'MovieNode *',而不是'MovieNode',所以最後一行沒有意義。 –
噢,我應該有新的 –