在 C++ 程式中建立給定二叉樹的映象樹


在本教程中,我們準備反映給出的二叉樹。

我們來看看解決該問題的步驟。

  • 編寫一個 struct 節點。

  • 使用虛擬資料建立二叉樹。

  • 編寫一個遞迴函式,以查詢給定二叉樹的映象。

    • 使用左右節點以遞迴方式呼叫函式。

    • 交換左節點資料和右節點資料。

  • 列印樹。

示例

我們來看看程式碼。

 互動演示

#include<bits/stdc++.h>
using namespace std;
struct Node {
   int data;
   struct Node* left;
   struct Node* right;
};
struct Node* newNode(int data) {
   struct Node* node = new Node;
   node->data = data;
   node->left = NULL;
   node->right = NULL;
   return node;
}
void convertTreeToItsMirror(struct Node* node) {
   if (node == NULL) {
      return;
   }
   else {
      struct Node* temp;
      convertTreeToItsMirror(node->left);
      convertTreeToItsMirror(node->right);
      temp = node->left;
      node->left = node->right;
      node->right = temp;
   }
}
void printTree(struct Node* node) {
   if (node == NULL) {
      return;
   }
   printTree(node->left);
   cout << node->data << " ";
   printTree(node->right);
}
int main() {
   struct Node *root = newNode(1);
   root->left = newNode(2);
   root->right = newNode(3);
   root->left->left = newNode(4);
   root->left->right = newNode(5);
   cout << "Tree: ";
   printTree(root);
   cout << endl;
   convertTreeToItsMirror(root);
   cout << "Mirror of the Tree: ";
   printTree(root);
   cout << endl;
   return 0;
}

輸出

如果你執行上述程式碼,你將得到以下結果。

Tree: 4 2 5 1 3
Mirror of the Tree: 3 1 5 2 4

結論

如果你有任何關於本教程的問題,請在評論部分提及。

更新日期: 2021 年 1 月 28 日

2K+ 瀏覽量

助力你的 職業生涯

完成課程後獲取證書

開始
廣告
© . All rights reserved.