私のコードに関するフィードバックをお願いします。これは学校の課題で、左側と右側の二分木を交換する関数を書くように求められました。教授がくれたクラスは swapBinaryTrees で、残りは私たちに任せました。大量のコンパイラ エラーが発生しており、構文のどこが間違っているのかわかりません。行 14 のようにコンパイルするとエラーが発生します init-declarator '<'token 参照の行は
void binaryTreeSearch<elemType>::swapSubtreeNodes()
19行目でも同じエラーがあります
void binaryTreeSearch<elemType>::swapSubtreeNodes(nodeType<elemType> *p)
上記の両方について、「;」を期待しているという別のエラーがあります。「<」トークンの前に、メイン関数で宣言されていない識別子を取得します
binaryTreeSearch<int> tree;
また、「int」と「;」の前に期待される一次式を取得しています。「int」の前に、cout と cin が宣言されていないことがわかります。ここで干し草が何をしているのかわかりません。以下にコード全体を投稿します。どんな助けも大歓迎です。
template <class elemType>
struct nodeType
{
elemType info;
nodeType<elemType> *lLink;
nodeType<elemType> *rLink;
};
template <class elemType>
class swapSubtreeNodes
{
};
template <class elemType>
void binaryTreeSearch<elemType>::swapSubtreeNodes()
{
swapSubtreeNodes(root);
}
template <class elemType>
void binaryTreeSearch<elemType>::swapSubtreeNodes(nodeType<elemType> *p)
{
root = temp;
nodeType<elemType> *root;
nodeType<elemType> *temp;
if (p == null)
{
return;
}
else
{
swapSubtreeNodes(p->lLink);
swapSubtreeNodes(p->rLink);
temp = p->lLink;
p->lLink = p->rLink;
p->rLink = temp;
}
}
int main()
{
binaryTreeSearch<int> tree;
int num;
cout << "This is how we swap'em" << endl;
cout << "Insert number (press enter after each one entered)." << endl;
cout << "Enter -999 to complete" << endl;
tree.insert(0);
cin >> num;
while (num != -999)
{
tree.insert(num);
cin >> num;
}
cout << "Your swapped binary tree is " << endl;
tree.swapSubtreeNodes();
tree.printTree();
cout << endl;
}