コード例 #1
0
ファイル: tree_diameter.c プロジェクト: mitcse/CSE-Labs
int heightTree (TNODE_p_t root) {
	if (root == NULL)
		return 0;
	int leftHeight = heightTree(root->left);
	int rightHeight = heightTree(root->right);
	return (leftHeight > rightHeight)?(leftHeight + 1):(rightHeight + 1);
}
コード例 #2
0
ファイル: tree_diameter.c プロジェクト: mitcse/CSE-Labs
int diameter (TNODE_p_t tree) {
	if (tree == NULL)
		return 0;
	int ld = diameter(tree->left);
	int rd = diameter(tree->right);
	int dd = (ld > rd) ? ld : rd;
	int lp = 1 + heightTree(tree->left) + heightTree(tree->right);
	return (lp > dd) ? lp : dd;
}
コード例 #3
0
ファイル: treeA.c プロジェクト: hokuto22/SO1516
int balanceFactor(node* node) {
	int bf = 0;

	if(node->left)
		bf += heightTree(node->left);
	if(node->right)
		bf -= heightTree(node->right);

	return bf;
} 
コード例 #4
0
ファイル: treeA.c プロジェクト: hokuto22/SO1516
int heightTree(node* nod) {
	int height_left = 0;
	int height_right = 0;

	if(nod->left)
		height_left = heightTree(nod->left);
	if(nod->right)
		height_right = heightTree(nod->right);

	return height_right > height_left ? ++height_right : ++height_left;
} 
コード例 #5
0
ファイル: rbtree.c プロジェクト: inste/market
int heightTree(Node * a) {
	int lh, rh;
	if (a == NIL)
		return 0;
	lh = heightTree(a->left);
	rh = heightTree(a->right);
	if (lh < rh)
		return rh + 1;
	else
		return lh + 1;
}
コード例 #6
0
 int heightTree(TreeNode *root) {
     if (root==NULL) return 0;
     if (root->left==NULL && root->right==NULL) return 1;
 
     int leftHeight = heightTree(root->left);
     int rightHeight = heightTree(root->right);
     
     if (leftHeight==-1 || rightHeight==-1) return -1;
     else if (leftHeight==rightHeight) return 1+leftHeight;
     else if (leftHeight==rightHeight-1) return 1+rightHeight;
     else if (leftHeight==rightHeight+1) return 1+leftHeight;
     else return -1;
 }
コード例 #7
0
int BinarySearchTree<T>::heightTree(Node<T> *rootTree) const
{
    if(rootTree == nullptr)
        return 0;

    int leftHeight, rightHeight;

    leftHeight = heightTree(rootTree->leftChild);
    rightHeight = heightTree(rootTree->rightChild);

    if(leftHeight > rightHeight)
        return (leftHeight + 1);
    else
        return (rightHeight + 1);

}
コード例 #8
0
 bool isBalanced(TreeNode *root) {
     // Start typing your C/C++ solution below
     // DO NOT write int main() function
     if (heightTree(root)==-1) return false;
     else return true;
 }
コード例 #9
0
void BinarySearchTree<T>::heightTree() const
{
    std::cout << "Height of tree: " << heightTree(root) << std::endl;
}