所以我需要一个只删除树的最后一个节点的函数。我在网上找到的所有内容都说使用向量而不是数组,但我的任务说使用数组。所以我想使用两个数组只是不知道如何实现它。请帮助这是我到目前为止的代码,我认为我需要的只是删除功能。提前致谢
#include <iostream>
#include <string>
using namespace std;
template <class item>
class Tree {
public:
// typedef int value_type;
typedef std::size_t size_type;
static const size_type CAPACITY = 30;
Tree() { used = 0; }
void leftchild(int index)
{
if((2*index)+1 > used)
{
cout <<"No child" << endl;
}
else
cout << "\nLeft Child of Index " << index << ": " << data[(2*index)+1] << endl;
}
void rightchild (int index)
{
if((2*index)+2 >= used)
{
cout <<"No child" << endl;
}
else
cout << "\nRight Child of Index " << index << data[(2*index)+2] << endl;
}
void parent (int index)
{
if(((index-1)/2) < 0)
{
cout << "No Parent" << endl;
}
else
cout << "\nParent: " << data[(index-1)/2] <<endl;
}
void insert(item entry)
{
data[used] = entry;
++used;
}
void remove()
{
}
void display()
{
for(int i = 0; i < used; i++)
{
cout << data[i];
}
}
private:
item data[CAPACITY];
size_type used;
};
int main()
{
Tree<char> test;
test.insert('A'); //Index [0]
test.insert('L'); //Index [1]
test.insert('G'); //Index [2]
test.insert('O'); //Index [3]
test.insert('R'); //Index [4]
test.insert('I'); //Index [5]
test.insert('T'); //Index [6]
test.insert('H'); //Index [7]
test.insert('M'); //Index [8]
test.insert('S'); //Index [9]
test.display();
//test.remove();
test.display();
test.leftchild(4);
system("pause");
return 0;
}