C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C++プログラムの例を含むダブルツリー


このチュートリアルでは、指定されたツリーを2倍にする方法を学習します。

問題を解決するための手順を見てみましょう。

  • ノードクラスを作成します。

  • ダミーデータでツリーを初期化します。

  • ツリーを2倍にする再帰関数を記述します。

    • ツリーを再帰的にトラバースします。

    • 左側のノードを変数に格納します。

    • トラバースした後、新しいノードを作成してデータを追加します。

    • 次に、左側のノードを、新しく作成されたノードに左側の子として追加します。

  • ツリーを印刷します。

コードを見てみましょう。

#include <bits/stdc++.h>
using namespace std;
class node {
   public:
   int data;
   node* left;
   node* right;
};
node* newNode(int data) {
   node* Node = new node();
   Node->data = data;
   Node->left = NULL;
   Node->right = NULL;
   return Node;
}
void doubleTree(node* Node) {
   node* oldLeft;
   if (Node == NULL) return;
      doubleTree(Node->left);
   doubleTree(Node->right);
   oldLeft = Node->left;
   Node->left = newNode(Node->data);
   Node->left->left = oldLeft;
}
void printTree(node* node) {
   if (node == NULL) {
      return;
   }
   printTree(node->left);
   cout << node->data << " ";
   printTree(node->right);
}
int main() {
   node *root = newNode(1);
   root->left = newNode(2);
   root->right = newNode(3);
   cout << "Original Tree" << endl;
   printTree(root);
   cout << endl;
   doubleTree(root);
   cout << "Double Tree" << endl;
   printTree(root);
   cout << endl;
   return 0;
}

出力

上記のコードを実行すると、次の結果が得られます。

Original Tree
2 1 3
Double Tree
2 2 1 1 3 3

結論

チュートリアルに質問がある場合は、コメントセクションにそのことを記載してください。


  1. C++を使用してツリーの奇数レベルでノードを印刷するプログラム

    このチュートリアルでは、特定の二分木の奇数レベルに存在するノードを印刷するプログラムについて説明します。 このプログラムでは、ルートノードのレベルは1と見なされ、同時に代替レベルは次の奇数レベルになります。 たとえば、次の二分木が与えられているとしましょう この場合、この二分木の奇数レベルのノードは1、4、5、6になります。 例 #include <bits/stdc++.h> using namespace std; struct Node {    int data;    Node* left, *right; }; //p

  2. AVLツリーを実装するためのC++プログラム

    AVLツリーは自己平衡二分探索木であり、左右のサブツリーの高さの差がすべてのノードで複数になることはありません。 ツリーの回転は、AVLツリーの要素の順序を妨げることなく構造を変更する操作です。ツリー内で1つのノードを上に移動し、1つのノードを下に移動します。これは、ツリーの形状を変更したり、小さいサブツリーを下に移動したり、大きいサブツリーを上に移動したりして高さを低くしたりするために使用され、多くのツリー操作のパフォーマンスが向上します。回転の方向は、木のノードが移動する側に依存しますが、他の人は、どの子がルートの場所をとるかに依存すると言います。これは、AVLツリーを実装するためのC+