Được đưa ra với một cây nhị phân chứa các nút và nhiệm vụ là tìm tích của tất cả các nút của một cây nhị phân đã cho.
Trong cây nhị phân, có một nút gốc là nút chính của tất cả các nút trong cây. Một nút chứa phần dữ liệu, con trỏ bên trái sẽ tạo thêm thư mục con bên trái và con trỏ bên phải sẽ giúp tạo thư mục con bên phải. Vì vậy, để duyệt qua cây, chúng ta có thể lấy một con trỏ tạm thời kết hợp với con trỏ trái để duyệt qua thư mục con bên trái hoặc con trỏ phải để duyệt qua thư mục con bên phải.
Đầu vào
Đầu ra
Nodes are-: 10, 20, 30, 40, 50, 60 Product = 10*20*30*40*50*60 = 72,00,00,000
Phương pháp tiếp cận
-
Nhập dữ liệu nút
-
Duyệt qua tất cả các nút bắt đầu từ nút gốc và chuyển đến thư mục con bên trái hoặc thư mục con bên phải để duyệt.
-
Lưu trữ dữ liệu các nút và tiếp tục nhân dữ liệu đã lưu với dữ liệu mới
-
In giá trị của một biến tạm thời chứa các giá trị được nhân.
Thuật toán
Start Step 1 → create structure of a node structure node struct node int data Create node *left, *right End Step 2 → declare function to insert a node in a tree node* new_node(int data) Set node* temp = new node() Set temp→data = data Set temp→left = temp→right = NULL return temp End Step 3 → Declare a function to multiply all the nodes void leaf(node* root, int &product) IF root = NULL return 1 End return (root→data * node_product(root→left) * node_product(root→right)) Step 4 → In main() Create node* root = new_node(10) Set root→left = new_node(20) Set root→left→left = new_node(30) Set int product = node_product(root) Display product Stop
Ví dụ
#include <iostream> using namespace std; //structure of a node struct node{ int data; node *left, *right; }; //function for inserting a new node node* new_node(int data){ node* temp = new node(); temp→data = data; temp→left = temp→right = NULL; return temp; } //function for multiplying all the nodes int node_product(node* root){ if (root == NULL) return 1; return (root→data * node_product(root→left) * node_product(root→right)); } int main(){ node* root = new_node(10); root→left = new_node(20); root→right = new_node(30); root→left→left = new_node(40); root→left→right = new_node(50); root→right→left = new_node(60); int product = node_product(root); cout << "Product of all the nodes is: "<<product<< endl; return 0; }
Đầu ra
Nếu chạy đoạn mã trên, nó sẽ tạo ra kết quả sau -
Product of all the nodes is: 720000000