コード例 #1
0
ファイル: 3.1.cpp プロジェクト: divyaspec/pandora
int main()
{
	int x = 1;
	Tree<int>* tree = new Tree<int>(NULL,x,NULL);
	x = 2;
	Tree<int>* r = new Tree<int>(NULL,x,NULL);
	x = 3 ;
	Tree<int>* l = new Tree<int>(NULL,x,NULL);
	x = 4 ;
	Tree<int>* ll = new Tree<int>(NULL,x,NULL);
	x = 5;
	Tree<int>* rl = new Tree<int>(NULL,x,NULL);

	x = 6;
	Tree<int>* lr = new Tree<int>(NULL,x,NULL);
	x = 7;
	Tree<int>* rr = new Tree<int>(NULL,x,NULL);

	r->setLeftTree(rl);
	l->setLeftTree(ll);

	r->setRightTree(rr);
	l->setRightTree(lr);

	tree->setRightTree(r);
	tree->setLeftTree(l);

	int count =0 ;
	countLeafNode(tree,count);

	cout << "number of leaf nodes = " << count << endl;

	return 0;

}
コード例 #2
0
ファイル: 3.1.cpp プロジェクト: divyaspec/pandora
void countLeafNode(const Tree<T>* root, int & count)
{
	if(NULL != root)
	{
		cout << "Analyzing " << root->getData() << endl;
		if(NULL == root->getLeftTree() && NULL == root->getRightTree())
		{
			count++;
			cout << "increasing count.." ;
		}	
		
		if( NULL != root->getLeftTree())
			countLeafNode(root->getLeftTree(),count);
		if( NULL != root->getRightTree())
			countLeafNode(root->getRightTree(),count);
	}
}
コード例 #3
0
ファイル: countLeafNode.c プロジェクト: ozt88/NEXT_14_FIRST
int countLeafNode(node_t* node)
{
	int count;

	if (!node)
	{
		count = 0;
	}
	else if (!node->leftChild && !node->rightChild)
	{
		count = 1;
	}
	else
	{
		count =  countLeafNode(node->leftChild) + countLeafNode(node->rightChild);
	}

	return count;
}
コード例 #4
0
ファイル: countLeafNode.c プロジェクト: ozt88/NEXT_14_FIRST
int testCountLeafNode(tree_t* tree)
{
	double runTime;
	time_t startTime = 0, endTime = 0;
	if (!tree)
	{
		return -1;
	}

	startTime = clock();
	printf("리프노드의 갯수는 %d개 입니다.\n", countLeafNode(tree->root));
	endTime = clock();
	runTime = (double)(endTime - startTime)/(CLOCKS_PER_SEC);
	printf("걸린 시간 : %g 초\n", runTime);

	return 0;
}