C++プログラミングでツリーの奇数レベルにノードを出力します。
二分木が与えられた場合、プログラムはツリーの奇数レベルでノードを出力する必要があり、二分木のレベルは1からnまで始まります。
何も言及されていないので、2つのアプローチのいずれか、つまり再帰または反復を実装できます。
再帰的アプローチを使用しているため、プログラムは、奇数レベルのノードをフェッチして返す関数を再帰的に呼び出します。
上記の二分木で-
Nodes at level 1: 10 Nodes at level 2: 3 and 211 Nodes at level 3: 140, 162, 100 and 146
したがって、レベル1とレベル3のノードが出力されます。つまり、出力は10、140、162、100、および146になります。
アルゴリズム
START Step 1 -> create a structure of a node as struct Node struct node *left, *right int data End Step 2 -> function to create a node node* newnode(int data) node->data = data node->left = node->right = NULL; return (node) step 3 -> create function for finding the odd nodes void odd(Node *root, bool ifodd = true) IF root = NULL Return End if (ifodd) print root->data End odd(root->left, !ifodd) odd(root->right, !ifodd) step 4 -> In main() Create tree using Node* root = newnode(45) root->left = newnode(23) Call odd(root) Stop>
例
#include <bits/stdc++.h> using namespace std; struct Node{ int data; Node* left, *right; }; void odd(Node *root, bool ifodd = true){ if (root == NULL) return; if (ifodd) cout << root->data << " " ; odd(root->left, !ifodd); odd(root->right, !ifodd); } // function to create a new node Node* newnode(int data){ Node* node = new Node; node->data = data; node->left = node->right = NULL; return (node); } int main(){ Node* root = newnode(45); root->left = newnode(23); root->right = newnode(13); root->left->left = newnode(24); root->left->right = newnode(85); cout<<"\nodd nodes are "; odd(root); return 0; }
出力
上記のプログラムを実行すると、次の出力が生成されます
odd nodes are 45 24 85
-
C++プログラミングのバイナリツリー内のすべてのノードの印刷レベル。
二分木が与えられた場合、タスクは、1からnまでのノードに格納されているすべてのキーに関連付けられたレベルを出力することです 上記のツリーでは、ノードは- 10 at level 1 3 and 211 at level 2 140, 162, 100 and 146 at level 3 キーが与えられると、プログラムはその特定のキーのレベルを出力する必要があります。 例 Input: 10 3 211 140 162 100 146 Output: level of 10 is 1 Level of 3 is 2 &
-
C++プログラミングのバイナリツリーの各ノードのセットビット数を出力します。
バイナリツリーが与えられると、関数はノードに格納されているキーのバイナリ値を生成し、そのバイナリに相当するビット数(1)を返します。 例 次のようなキーを持つ二分木:10 3 211 140162100および146 キー 同等のバイナリ ビット(出力)を設定 10 1010 2 3 0011 2 211 11010011 5 140 10001100 3 162 10100010 3 100 1100100 3 146 10010010 3 ここでは、関数_