void MovieTree::printMovieInventory(MovieNode* node)
{
if(node)
{
while(node->rightChild!=NULL or node->leftChild!=NULL)
{
std::cout<<"Movie:"<<node->title<<" "<<node->quantity<<std::endl;
if(node->rightChild)
{
printMovieInventory(node->rightChild);
}
if(node->leftChild)
{
printMovieInventory(node->leftChild);
}
}
}
else
{
std::cout<<"No movies in list!"<<std::endl;
}
}
この機能が問題を引き起こしているのか、それとも私の機能を追加しているのか分かりませんが、これに対するロジックが正しいかのように感じます。何か不足していますか?バイナリ検索ツリーの内容を再帰的に出力しますか?
編集:: 私の問題は、それが無限ループが生じていますし、それが適切に機能におけるwhile
の
これは良い点です。私はプレフィックス順で印刷しているのに対し、元のコードは後続の順番で印刷しています。手元にあるタスクにとってそれが重要かどうかは確かではありませんが、私はそれについて言及したいと考えました。 – user1118321
@ user1118321元のコードは後置ですか?私はそれを見ていないよ。 – xaxxon
申し訳ありません。プレ/ポストフィックスはありません。私が意味していたことは、元のコードが最初に右回帰してから左に回帰していたことです。もう一度 - それは何か違いがあるかどうかはわかりませんが、アプリケーションによっては違うかもしれません。 – user1118321