Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++의 이진 트리에 있는 모든 노드의 곱


노드를 포함하는 이진 트리가 주어지면 주어진 이진 트리의 모든 노드의 곱을 찾는 것이 작업입니다.

이진 트리에는 트리에 있는 모든 노드의 마스터 노드인 루트 노드가 있습니다. 노드에는 데이터 부분, 왼쪽 하위 디렉터리를 추가로 생성하는 왼쪽 포인터 및 오른쪽 하위 디렉터리 생성에 도움이 되는 오른쪽 포인터가 포함됩니다. 따라서 트리를 탐색하기 위해 왼쪽 하위 디렉토리를 탐색하기 위한 왼쪽 포인터 또는 오른쪽 하위 디렉토리를 탐색하기 위한 오른쪽 포인터와 연관될 임시 포인터를 사용할 수 있습니다.

입력

C++의 이진 트리에 있는 모든 노드의 곱

출력

Nodes are-: 10, 20, 30, 40, 50, 60
Product = 10*20*30*40*50*60 = 72,00,00,000

접근

  • 노드 데이터 입력

  • 루트 노드에서 시작하여 탐색을 위해 왼쪽 하위 디렉터리 또는 오른쪽 하위 디렉터리로 이동하는 모든 노드를 탐색합니다.

  • 노드 데이터를 저장하고 저장된 데이터를 새 데이터와 계속 곱합니다.

  • 곱한 값을 보유하는 임시 변수의 값을 인쇄합니다.

알고리즘

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
설정

#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;
}

출력

위의 코드를 실행하면 다음 출력이 생성됩니다 -

Product of all the nodes is: 720000000