我在我的某个程序中无法取消我的AVL树类,我不确定如何包含我的类并将其与现有代码一起使用,这就是问题所在:
我有一个AVL树类:AVL_tree.h
和AVL_tree.cpp
我还有main.cpp
个文件
还functions.cpp
和functions.h
,其中我存储main.cpp
中使用的一些函数
因此,在main()
中,我从AVL树类创建了一个对象。我想将此对象与其他一些数据(用于更改树中存储的信息)一起传递给我functions.cpp
中的一个函数。这是我无法让它发挥作用的地方。我得到了几个像这样的错误:
main.o:main.cpp|| undefined reference to `AVL_Tree::AVL_Tree()'|
main.o:main.cpp|| undefined reference to `process_vector(std::vector<int, std::allocator<int> >, AVL_Tree&)'|
如何将必要的信息传递给我的函数以修改我的树?
我的代码文件的简化版本:
的main.cpp
#include <vector>
#include "functions.h"
#include "AVL_tree.h"
using namespace std;
int main() {
AVL_Tree tree;
vector<int> V;
V.push_back(11);
V.push_back(4);
V.push_back(7);
process_vector(V, tree);
return 0;
}
functions.h
#ifndef FUNCTIONS_H
#define FUNCTIONS_H
#include<vector>
#include"AVL_tree.h"
using namespace std;
void process_vector(vector<int> V, AVL_Tree &tree);
#endif // FUNCTIONS_H
functions.cpp
#include<vector>
#include"functions.h"
#include"AVL_tree.h"
using namespace std;
void process_vector(vector<int> V, AVL_Tree &tree){
for(int i=0;i<vector.size();i++){
key = vector[i]
tree.AddLeaf(key);
}
return;
}
AVL_tree.h
#ifndef AVL_TREE_H
#define AVL_TREE_H
class AVL_Tree{
private:
struct node{
int key;
node* left;
node* right;
};
node* root;
node* CreateLeaf(int key);
node* AddLeafPrivate(int key, node* Ptr);
int HeightPrivate(node* Ptr);
int BFactorPrivate(node* Ptr);
public:
AVL_Tree();
void AddLeaf(int key);
int Height(int key);
int BFactor(int key);
};
#endif // TREE