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 Tree
ExplanationIn 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 JAVA
public 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
|