У меня проблема с домашней работой. Как ни странно, функция treeHeight работает. Это было предусмотрено книгой. Я сделал nodeCount и leavesCount для этого домашнего задания и получу для него эти ошибки сборки, когда тот, который сделал автор, не
Ошибка сборки:
1> testProgBinarySearchTree.cpp
1>testProgBinarySearchTree.cpp(49): error C2660: 'binaryTreeType<elemType>::nodeCount' : function does not take 0 arguments
1> with
1> [
1> elemType=int
1> ]
1>testProgBinarySearchTree.cpp(50): error C2660: 'binaryTreeType<elemType>::leavesCount' : function does not take 0 arguments
1> with
1> [
1> elemType=int
1> ]
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
Исходный код main:
cout << endl<<"Line 24: Tree Height: "
<< treeRoot.treeHeight() << endl; //Line 24
cout << endl << "The node count is: " << treeRoot.nodeCount();
cout << endl << "The leaf count is: " << treeRoot.leavesCount();
Класс:
int height(binaryTreeNode<elemType> *p) const;
//Function to return the height of the binary tree
//to which p points.
int max(int x, int y) const;
//Returns the larger of x and y.
int nodeCount(binaryTreeNode<elemType> *p) const;
//Function to return the number of nodes in the binary
//tree to which p points
int leavesCount(binaryTreeNode<elemType> *p) const;
//Function to return the number of leaves in the binary
//tree to which p points
template <class elemType>
int binaryTreeType<elemType>::height(binaryTreeNode<elemType> *p) const
{
if (p == NULL)
return 0;
else
return 1 + max(height(p->llink), height(p->rlink));
}
template <class elemType>
int binaryTreeType<elemType>::max(int x, int y) const
{
if (x >= y)
return x;
else
return y;
}
template <class elemType>
int binaryTreeType<elemType>::nodeCount(binaryTreeNode<elemType> *p) const
{
if (p == null)
return 0;
else
return nodeCount(p->llink) + nodeCount(p->rlink) + 1;
}
template <class elemType>
int binaryTreeType<elemType>::leavesCount(binaryTreeNode<elemType> *p) const
{
if (p == null)
return 0;
else
if ( leavesCount(p->llink) == 0 && leavesCount(p->rlink) == 0)
return 1;
else
return leavesCount(p->llink) + leavesCount (p->rlink);
}
ФИГУРА ЕГО СПАСИБО.
Другая функция вызывает это с похожими именами, и я пропустил это, исправил и спасибо за помощь