在使用指针时,内存的分配是一个很头疼的问题,为了防止内存溢出,以二叉树为例搭建一个简单的内存池。
queue<Node *>freenodes;
Node node[maxn];
void init()
{
for (int i = 0; i < maxn; i++)
freenodes.push(&node[i]);//初始化内存池
}
Node * newnode()
{
Node * u = freenodes.front();
u->left = u->right = NULL;
u->have_value = false;//重新初始化该结点
freenodes.pop();
return u;
}
void deletenode(Node * u)
{
freenodes.push(u);
}