Trong hướng dẫn này, chúng ta sẽ học cách nhân đôi cây đã cho.
Hãy xem các bước để giải quyết vấn đề.
-
Tạo lớp nút.
-
Khởi tạo cây bằng dữ liệu giả.
-
Viết một hàm đệ quy để nhân đôi cây.
-
Đi qua một cách đệ quy qua cây.
-
Lưu trữ nút bên trái trong một biến.
-
Sau khi duyệt, hãy thêm dữ liệu bằng cách tạo một nút mới.
-
Bây giờ, thêm nút bên trái vào nút mới tạo dưới dạng nút con bên trái.
-
-
In cây.
Ví dụ
Hãy xem mã.
#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; }
Đầu ra
Nếu bạn chạy đoạn mã trên, thì bạn sẽ nhận được kết quả sau.
Original Tree 2 1 3 Double Tree 2 2 1 1 3 3
Kết luận
Nếu bạn có bất kỳ câu hỏi nào trong hướng dẫn, hãy đề cập đến chúng trong phần bình luận.