指定されたBSTのすべてのノードにすべての大きい値を追加します
ここでは、1つの興味深い問題が発生します。ここでは、1つの与えられた二分探索木のすべてのノードにより大きな値を追加します。したがって、最初と最後のツリーは次のようになります-
アルゴリズム
bstUpdate(root、sum)-
Begin if root is null, then stop bstUpdate(right of room, sum) sum := sum + value of root update root value using sum bstUpdate(left of room, sum) End
例
#include<iostream> using namespace std; class Node { public: int data; Node *left, *right; }; Node *getNode(int item) { Node *newNode = new Node(); newNode->data = item; newNode->left = newNode->right = NULL; return newNode; } void updateBST(Node *root, int *sum) { if (root == NULL) return; updateBST(root->right, sum); //update right sub tree *sum = *sum + root->data; root->data = *sum; //update root data updateBST(root->left, sum); //update left sub tree } void BSTUpdate(Node *root) { int sum = 0; updateBST(root, &sum); } void inorder(Node *root) { if (root != NULL) { inorder(root->left); cout<<root->data<<" "; inorder(root->right); } } Node* insert(Node* node, int data) { if (node == NULL) return getNode(data); if (data <= node->data) //go to left node->left = insert(node->left, data); else //go to right node->right = insert(node->right, data); return node; } int main() { int data[] = {50, 30, 20, 40, 70, 60, 80}; int n = sizeof(data)/sizeof(data[0]); Node *root = NULL; for(int i = 0; i < n; i++) { root = insert(root, data[i]); } BSTUpdate(root); inorder(root); }
出力
350 330 300 260 210 150 80
-
C++の特定のノードのサブツリー内のすべてのノードのXOR
この問題では、nツリーが与えられ、ツリーのノードであるクエリがいくつかあります。私たちのタスクは、指定されたノードによって形成されたサブツリーのすべてのノードのXORを出力することです。 問題を理解するために例を見てみましょう クエリ − {1、6、5} 出力 − 0 0 5 説明 − 1^6^3^2^4^7^5 6^2^4 5 この問題を解決するために、ツリーを1回トラバースして保存することにより、サブツリーのすべてのノードのxorを計算します。ここで、子ノードの場合はサブツリーのすべてのノードのxorを計算し、次に指定されたすべてのサブツリーを計算します。結果を保存す
-
C ++の特定のBSTのすべてのノードに、より大きな値をすべて追加しますか?
BSTまたは二分探索木は、すべての左ノードがルート値よりも小さく、すべての右ノードが大きい二分木の形式です。この問題では、バイナリツリーを取得し、現在のノードより大きいすべての値を追加します。 「BSTのすべてのノードにすべての大きい値を追加する」という問題は単純化されています。BSTの場合、現在のノード値よりも大きいすべてのノード値をそのノード値に追加します。 BST問題ステートメントの各ノードにすべての大きい値を追加します- 二分探索木(BST)が与えられた場合、各ノードに、より大きな値のすべてのノードの合計を追加する必要があります。 説明 このプログラムは、BSTを、すべての