Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

Double Tree พร้อมตัวอย่างในโปรแกรม C++


ในบทช่วยสอนนี้ เราจะเรียนรู้วิธีเพิ่มต้นไม้ที่กำหนดเป็นสองเท่า

มาดูขั้นตอนการแก้ปัญหากัน

  • สร้างคลาสโหนด

  • เริ่มต้นต้นไม้ด้วยข้อมูลจำลอง

  • เขียนฟังก์ชันเรียกซ้ำเพื่อเพิ่มต้นไม้เป็นสองเท่า

    • ลัดเลาะผ่านต้นไม้ซ้ำๆ

    • เก็บโหนดด้านซ้ายไว้ในตัวแปร

    • หลังจากสำรวจแล้ว ให้เพิ่มข้อมูลโดยการสร้างโหนดใหม่

    • ตอนนี้ เพิ่มโหนดด้านซ้ายให้กับโหนดที่สร้างขึ้นใหม่ในฐานะลูกด้านซ้าย

  • พิมพ์ต้นไม้

ตัวอย่าง

มาดูโค้ดกันเลย

#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

บทสรุป

หากคุณมีข้อสงสัยใดๆ ในบทแนะนำ โปรดระบุในส่วนความคิดเห็น