我想構建一個n維樹。我使用vector
來存儲每個節點的子節點。我寫的代碼給出了「堆棧溢出錯誤」,我不知道爲什麼,我使用new
。如果有人能告訴我我出錯的地方,我將非常感激。當我嘗試構建八叉樹結構時堆棧溢出
class Node
{
public:
int q_number;
int layer;
int value;
vector<Node*> n_list;
Node(int n):q_number(n),n_list(n) //initialize node vector
{
}
};
Node* buildtree(int n,int depth)
{
Node * node = new Node(depth);
if(n==depth-1)
{
for(int i = 0; i<depth;i++)
{
node->n_list[i] = NULL;
node->n_list[i]->value = i;
node->n_list[i]->layer = depth-1;
}
}
else
{
for (int i =0;i<depth;i++)
{
node->n_list[i] = buildtree(n++,depth);// span the tree recursively
node->n_list[i]->value = i;
node->n_list[i]->layer = n; // the layer value
}
}
return node;
}
int main()
{
Node * tree = buildtree(0,8); // build an octree
}
請在您的帖子中縮進您的代碼。 – Appleshell
我想知道如果你發現這個網站是因爲「堆棧溢出」錯誤?鑑於這是你的第一個問題,很有可能 –
我認爲我們不應該幫助黑魔王建立一個聖殿,它肯定會對我們人類造成嚴重的後果。 –