C++ 使用单独的.cpp文件中的/create/modify变量
长话短说,我被要求:C++ 使用单独的.cpp文件中的/create/modify变量,c++,binary-search-tree,C++,Binary Search Tree,长话短说,我被要求: 构建一个二叉搜索树,T1 执行T1的后序遍历,并在执行后序遍历时,将节点插入第二个二叉搜索树T2 我无法同时将这些值保存到T2。我试过各种方法,但什么都没有。我试过用很多方法来攻击它。我想我可以在main.cpp中创建T2,然后从BST.cpp中输入postorder搜索,但是失败了 不确定是否可以从单独的.cpp文件调用和修改变量 我希望你们中的一个能给我一些建议 我想我可以通过创建一个新数组将T1的结果硬编码到main.cpp,但是我的教授对以下细节非常挑剔 谢谢你的帮
T1
T1
的后序遍历,并在执行后序遍历时,将节点插入第二个二叉搜索树T2
T2
。我试过各种方法,但什么都没有。我试过用很多方法来攻击它。我想我可以在main.cpp
中创建T2
,然后从BST.cpp
中输入postorder搜索,但是失败了
不确定是否可以从单独的.cpp
文件调用和修改变量
我希望你们中的一个能给我一些建议
我想我可以通过创建一个新数组将T1
的结果硬编码到main.cpp
,但是我的教授对以下细节非常挑剔
谢谢你的帮助和建议
(我在代码中省略了与T2
有关的任何内容,因为它不会编译。)
main.cpp
int main() {
int TreeKeys[10] = {50, 76 ,21 , 4, 32, 64, 15, 52, 14, 88};
BST T1;
BST T2;
cout << "Printing T1 before inputing values:\n";
T1.PrintInOrder();
for (int i = 0; i < 10; i++)
{
T1.AddLeaf(TreeKeys[i]);
}
cout << "****************" << endl;
cout << "Printing T1 in PostOrder:" << endl;
T1.printPostOrder();
cout << endl;
return 0;
}
变量不存在于文件中,它们存在于作用域中 基本上有三种解决方案: 1) 在
main
中声明t2
,并将其作为输出参数传递给执行t1
遍历的函数,例如
void BST::postOrderTraversal(BST& tree_to_build);
2) 在遍历函数中声明并构建第二棵树,并按值返回(可能涉及副本)
3) (b)在遍历函数中动态分配一棵新树,并返回指向它的指针;需要在main
中删除该对象
BST* BST::postOrderTraversal();
我想你把“做一次后序遍历”误读为“按后序打印树”。你是对的,但打印是为了帮助我。通过打印,我可以验证我是否正确进行了后期订购。但我还不能,因为我不确定如何将节点添加到T2。
void BST::postOrderTraversal(BST& tree_to_build);
BST BST::postOrderTraveral();
BST* BST::postOrderTraversal();