C-Sharp | Java | Python | Swift | GO | WPF | Ruby | Scala | F# | JavaScript | SQL | PHP | Angular | HTML
Q. Program to find the sum of all the nodes of a Binary TreeExplanationIn this program, we need to calculate the sum of nodes present in the binary tree. First, we will traverse through the left sub-tree and calculate the sum of nodes present in the left sub-tree. Similarly, we calculate the sum of nodes present in the right sub-tree and calculate total sum by adding the root?s data. For the given tree, sum of nodes of the binary tree will be 1 + 2 + 5 + 8 + 6 + 9 = 31. Algorithm
SolutionPython#Represent a node of binary tree class Node: def __init__(self,data): #Assign data to the new node, set left and right children to None self.data = data; self.left = None; self.right = None; class SumOfNodes: def __init__(self): #Represent the root of binary tree self.root = None; #calculateSum() will calculate the sum of all the nodes present in the binary tree def calculateSum(self, temp): sum = sumRight = sumLeft = 0; #Check whether tree is empty if(self.root == None): print("Tree is empty"); return 0; else: #Calculate the sum of nodes present in left subtree if(temp.left != None): sumLeft = self.calculateSum(temp.left); #Calculate the sum of nodes present in right subtree if(temp.right != None): sumRight = self.calculateSum(temp.right); #Calculate the sum of all nodes by adding sumLeft, sumRight and root node's data sum = temp.data + sumLeft + sumRight; return sum; bt = SumOfNodes(); #Add nodes to the binary tree bt.root = Node(5); bt.root.left = Node(2); bt.root.right = Node(9); bt.root.left.left = Node(1); bt.root.right.left = Node(8); bt.root.right.right = Node(6); #Display the sum of all the nodes in the given binary tree print("Sum of all nodes of binary tree: " + str(bt.calculateSum(bt.root))); Output: Sum of all nodes of binary tree: 31 C#include <stdio.h> #include <stdlib.h> //Represent a node of binary tree struct node{ int data; struct node *left; struct node *right; }; //Represent the root of binary tree struct node *root = NULL; //createNode() will create a new node struct node* createNode(int data){ //Create a new node struct node *newNode = (struct node*)malloc(sizeof(struct node)); //Assign data to newNode, set left and right children to NULL newNode->data = data; newNode->left = NULL; newNode->right = NULL; return newNode; } //calculateSum() will calculate the sum of all the nodes present in the binary tree int calculateSum(struct node *temp){ int sum, sumLeft, sumRight; sum = sumRight = sumLeft = 0; //Check whether tree is empty if(root == NULL) { printf("Tree is empty\n"); return 0; } else { //Calculate the sum of nodes present in left subtree if(temp->left != NULL) sumLeft = calculateSum(temp->left); //Calculate the sum of nodes present in right subtree if(temp->right != NULL) sumRight = calculateSum(temp->right); //Calculate the sum of all nodes by adding sumLeft, sumRight and root node's data sum = temp->data + sumLeft + sumRight; return sum; } } int main() { //Add nodes to the binary tree root = createNode(5); root->left = createNode(2); root->right = createNode(9); root->left->left = createNode(1); root->right->left = createNode(8); root->right->right = createNode(6); //Display the sum of all the nodes in the given binary tree printf("Sum of all nodes of binary tree: %d", calculateSum(root)); return 0; } Output: Sum of all nodes of binary tree: 31 JAVApublic class SumOfNodes { //Represent the node of binary tree public static class Node{ int data; Node left; Node right; public Node(int data){ //Assign data to the new node, set left and right children to null this.data = data; this.left = null; this.right = null; } } //Represent the root of binary tree public Node root; public SumOfNodes(){ root = null; } //calculateSum() will calculate the sum of all the nodes present in the binary tree public int calculateSum(Node temp){ int sum, sumLeft, sumRight; sum = sumRight = sumLeft = 0; //Check whether tree is empty if(root == null) { System.out.println("Tree is empty"); return 0; } else { //Calculate the sum of nodes present in left subtree if(temp.left != null) sumLeft = calculateSum(temp.left); //Calculate the sum of nodes present in right subtree if(temp.right != null) sumRight = calculateSum(temp.right); //Calculate the sum of all nodes by adding sumLeft, sumRight and root node's data sum = temp.data + sumLeft + sumRight; return sum; } } public static void main(String[] args) { SumOfNodes bt = new SumOfNodes(); //Add nodes to the binary tree bt.root = new Node(5); bt.root.left = new Node(2); bt.root.right = new Node(9); bt.root.left.left = new Node(1); bt.root.right.left = new Node(8); bt.root.right.right = new Node(6); //Display the sum of all the nodes in the given binary tree System.out.println("Sum of all nodes of binary tree: " + bt.calculateSum(bt.root)); } } Output: Sum of all nodes of binary tree: 31 C#using System; namespace Tree { public class Program { //Represent a node of binary tree public class Node<T>{ public T data; public Node<T> left; public Node<T> right; public Node(T data) { //Assign data to the new node, set left and right children to null this.data = data; this.left = null; this.right = null; } } public class SumOfNodes<T>{ //Represent the root of binary tree public Node<T> root; public static Boolean flag = false; public SumOfNodes(){ root = null; } //calculateSum() will calculate the sum of all the nodes present in the binary tree public int calculateSum(Node<T> temp){ int sum, sumLeft, sumRight; sum = sumRight = sumLeft = 0; //Check whether tree is empty if(root == null) { Console.WriteLine("Tree is empty"); return 0; } else { //Calculate the sum of nodes present in left subtree if(temp.left != null) sumLeft = calculateSum(temp.left); //Calculate the sum of nodes present in right subtree if(temp.right != null) sumRight = calculateSum(temp.right); //Calculate the sum of all nodes by adding sumLeft, sumRight and root node's data sum = (int)(object)temp.data + sumLeft + sumRight; return sum; } } } public static void Main() { SumOfNodes<int> bt = new SumOfNodes<int>(); //Add nodes to the binary tree bt.root = new Node<int>(5); bt.root.left = new Node<int>(2); bt.root.right = new Node<int>(9); bt.root.left.left = new Node<int>(1); bt.root.right.left = new Node<int>(8); bt.root.right.right = new Node<int>(6); //Display the sum of all the nodes in the given binary tree Console.WriteLine("Sum of all nodes of binary tree: " + bt.calculateSum(bt.root)); } } } Output: Sum of all nodes of binary tree: 31 PHP<!DOCTYPE html> <html> <body> <?php //Represent a node of binary tree class Node{ public $data; public $left; public $right; function __construct($data){ //Assign data to the new node, set left and right children to NULL $this->data = $data; $this->left = NULL; $this->right = NULL; } } class SumOfNodes{ //Represent the root of binary tree public $root; function __construct(){ $this->root = NULL; } //calculateSum() will calculate the sum of all the nodes present in the binary tree function calculateSum($temp){ $sum = 0; $sumLeft = 0; $sumRight = 0; //Check whether tree is empty if($this->root == NULL) { print "Tree is empty <br>"; return 0; } else { //Calculate the sum of nodes present in left subtree if($temp->left != NULL) $sumLeft = $this->calculateSum($temp->left); //Calculate the sum of nodes present in right subtree if($temp->right != NULL) $sumRight = $this->calculateSum($temp->right); //Calculate the sum of all nodes by adding sumLeft, sumRight and root node's data $sum = $temp->data + $sumLeft + $sumRight; return $sum; } } } $bt = new SumOfNodes(); //Add nodes to the binary tree $bt->root = new Node(5); $bt->root->left = new Node(2); $bt->root->right = new Node(9); $bt->root->left->left = new Node(1); $bt->root->right->left = new Node(8); $bt->root->right->right = new Node(6); //Display the sum of all the nodes in the given binary tree print "Sum of all nodes of binary tree: " . $bt->calculateSum($bt->root); ?> </body> </html> Output: Sum of all nodes of binary tree: 31
Next TopicPrograms List
|