使用树排序修改数组
Using tree sort to modify array
我希望使用树排序来存储数组中排序的数字,而不是仅按排序顺序输出数字。n被初始化为零。
void BinSearchTree::inOrder( TreeNodePtr subRoot, int A[], int n )
{
if ( subRoot != NULL )
{
inOrder( subRoot->left, A, n );
A[n] = subRoot->key;
n++;
inOrder( subRoot->right, A, n );
}
}
我相信问题在于我继续调用A作为inOrder的参数,但我不知道我还能怎么做。
您应该有一个对n的引用,否则您不知道下一个要分配的元素是什么,即:
void BinSearchTree::inOrder( TreeNodePtr subRoot, int A[], int& last )
{
if ( subRoot != NULL )
{
inOrder( subRoot->left, A, n );
A[last++] = subRoot->key;
inOrder( subRoot->right, A, n );
}
}
另一种选择是使用具有push_back函数的容器,如向量:
void BinSearchTree::inOrder( TreeNodePtr subRoot, std::vector<int>& vec )
{
if ( subRoot != NULL )
{
inOrder( subRoot->left, vec );
vec.push_back( subRoot->key );
inOrder( subRoot->right, vec);
}
}
相关文章:
- 为什么可以修改数组 b?
- C++:通过函数修改数组
- 如何修改数组,从中删除空格,然后将其存储在新数组中
- 尝试修改数组时出现写访问冲突
- 无法修改数组中对象的队列
- 如果我制作一个代码,每个线程都会修改数组的完全不同的部分,则将保持缓存相干性
- 我们如何在C++中修改数组的大小
- C++ 如何使用 [] 访问和修改数组
- 以 C++ 为单位修改数组的长度
- 在<algorithm>不使用C++函数的情况下修改数组?
- 传递引用以修改数组之后,为什么它保持不变
- 使用树排序修改数组
- 如何修改数组指针并将其作为参数传递给需要数组作为参数的函数
- 修改数组的函数-指针作为输入
- 在c++中使用location修改数组值
- 通过函数修改数组的元素
- 修改数组的值
- OpenCV程序在修改数组时崩溃
- 使用汇编语言修改数组
- 使用Intel TBB原子化地修改数组元素