<?php
class BinaryNode{
public $value = null; // node value
public $left = null; // left child
public $right = null; // right child
public function __construct($value) {
$this->value = $value;
}
}
class BinaryTreeDiameter{
//find the diameter and print its value
public function findDiameterOfTree($root){
//Checking node is empty or not
if($root === null){
return 0;
}
// Compute the depth of each subtree
$lDepth = $this->findDiameterOfTree($root->left);
$rDepth = $this->findDiameterOfTree($root->right);
// Return the greater one.
if ($lDepth > $rDepth)
return $lDepth+1;
else
return $rDepth+1;
}
//find the diameter and print its value
}
$Dia = new BinaryTreeDiameter(1);
$Dia->root = new BinaryNode(1);
$Dia->root->left = new BinaryNode(2);
$Dia->root->right = new BinaryNode(3);
$Dia->root->left->left = new BinaryNode(4);
$Dia->root->left->right = new BinaryNode(5);
$Dia->root->right->left = new BinaryNode(6);
$Dia->root->right->right = new BinaryNode(7);
$Dia->root->left->left->left = new BinaryNode(8);
//Display the maximum width of given tree
print "Maximum width of the binary tree: " . $Dia->findDiameterOfTree($Dia->root);
?>
There are many magic methods in PHP like __construct(), __destruct(), __callback(), __get(), __set(), __sleep(), __wake() and many more. But we will be takingon on __sleep() and __wake(). __sleep() : serialize() checks if your class has a function with the magic name __sleep(). If so, that function is executed prior to any serialization. It can clean up the object and is supposed to return an array with the names of all variables of that object that should be serialized. If the method doesn't return anything then NULL is serialized and E_NOTICE is issued. serialize() is used for the representation of the storage class for storing the value. Serializing an object means converting it to a byte stream representation that can be stored in a file. The use of __sleep() to commit the pending task. If a bulk data is being inserted then at that time __sleep can be used. it will not release the object unless the work is not completed....
Comments
Post a Comment