指定されたバイナリツリーを、C++で論理ANDプロパティを保持するツリーに変換します
このチュートリアルでは、特定のバイナリツリーを論理ANDプロパティを保持するツリーに変換するプログラムについて説明します。
このために、バイナリツリーが提供されます。私たちのタスクは、それを論理ANDプロパティを保持するツリーに変換することです。これは、ノードがその子ノードのAND演算の値を持っていることを意味します。すべてのノードの値は0または1のいずれかであることに注意してください。
例
#include<bits/stdc++.h> using namespace std; //node structure of binary tree struct Node{ int data; struct Node* left; struct Node* right; }; //creation of a new node struct Node* newNode(int key){ struct Node* node = new Node; node->data= key; node->left = node->right = NULL; return node; } //converting the tree with nodes following //logical AND operation void transform_tree(Node *root){ if (root == NULL) return; //moving to first left node transform_tree(root->left); //moving to first right node transform_tree(root->right); if (root->left != NULL && root->right != NULL) root->data = (root->left->data) & (root->right->data); } //printing the inorder traversal void print_tree(Node* root){ if (root == NULL) return; print_tree(root->left); printf("%d ", root->data); print_tree(root->right); } int main(){ Node *root=newNode(0); root->left=newNode(1); root->right=newNode(0); root->left->left=newNode(0); root->left->right=newNode(1); root->right->left=newNode(1); root->right->right=newNode(1); printf("Before conversion :\n"); print_tree(root); transform_tree(root); printf("\nAfter conversion :\n"); print_tree(root); return 0; }
出力
Before conversion : 0 1 1 0 1 0 1 After conversion : 0 0 1 0 1 1 1
-
C++のバイナリツリーでノードの後続を事前注文する
この問題では、二分木とノード値が与えられます。私たちのタスクは、ノードのプレオーダーサクセサを印刷することです。 二分木 は、各ルートノードが最大2つの子ノードを持つことができる特殊なタイプのツリーです。 プレオーダートラバーサル ツリーのノードをトラバースする方法です。ここでは、最初にルートノードをトラバースし、次に左の子、次に右の子をトラバースします。 後続ノードの事前注文 ノードのプレオーダートラバーサルでノードの隣に来るノードです。 問題を理解するために例を見てみましょう Input: 9 Output 0 Explanation: the preorder traver
-
C++のバイナリツリーでルートから特定のノードまでの距離を検索します
ノードが少ない二分木があると考えてください。ルートと別のノードuの間の距離を見つける必要があります。ツリーが次のようになっているとします。 これで、(root、6)=2の間の距離、パスの長さは2、(root、8)=3の間の距離などになります。 この問題を解決するために、再帰的アプローチを使用して、左右のサブツリーでノードを検索し、各レベルの長さも更新します。 例 #include<iostream> using namespace std; class Node { public: int data; &