私はルートポインタを使ってバイナリツリーを構築しました。ポインタをグローバルにするC++
私はglobalyを宣言しているので、すべての関数でルートポインタを変更する必要はありませんか?これをどのように達成するのですか?
//擬似コード
おかげで(左は、右のポインタは、他の場所で宣言された)
Node * root = new Node;
Node * BST::BuildTree(int label)
{
root->left = changed;
root->right = changed;
}
Node * BST::GetNode(int label)
{
BTNode *ptr = root;
cout << root->right; //This gives me a seg fault since root is still NULL and not changed
}
「ルート」をどこに割り当てるかわかりません。実際、私が言うことができる限り、 'BuildTree'も壊れるはずです。その理由は、' root'が 'Node'を指し示すことはありません。 – cHao
私はそれを修正したと思う –
グローバル変数を使用する必要はほとんどありません。特にC言語では、関数を参照する変数があるので、自由にルートを変更できます。 – paxdiablo