ここでは、適用する技術よりも、公開されるアイデアやアルゴリズムの概念が重要です。それは言われている:
struct node {
char data;
node* left;
node* right;
}
// Function to print each level in the tree*
void printByLevel(node* root) { // Copy root node, pass by value.
int height = height(root); // Get tree height. Total amount of levels to print.
for (int i = 1; i <= h; i++) {
printLevel(root, i);
std::cout << std::endl; // A line after each level is printed.
}
}
あなたは以下補助機能が必要になります。これに似た、古典的な二分木構造を仮定し
:
C++回答(C#に簡単に移植)上記の関数を実行できるようにツリーの高さを計算する機能も備えています。
// Print nodes at ONE specific level
void printLevel(node* root, int level) { // Copy root node, pass by value.
if (root != nullptr) {
if (level == 1)
std::cout << root->data << ' ';
else if (level > 1) {
printLevel(root->left, level-1);
printLevel(root->right, level-1);
}
}
std::cout << "NULL" << ' '; // No value, print "NULL"
}
あなたが修正するのに役立つコードは表示されません。私はnullのcoleascing演算子を使用します: 'leaf?.ToString()?? "NULL" ' – BradleyDotNET