0
木を使って作業しています。すべてのノードにTree *値を持つオブジェクトがあります。 、それは意味C++各ノードに一定時間のツリー
1
2
2
...
0の子として1を入れ、1の子として2を入れ、通常のフォームで2 oを子として3を置く:私は次のようになりますどのデータを読み込むI-1の子としてのX置きますここで、iは行数です。私は入力を読み込むとき
class Tree {
public:
int value;
stack <Tree*> children;
Tree();
Tree (int x) {value = x;}
void wypisz();
};
だから今私はこのような何かを持っている(しかし、それは動作しません):
私はのように見えますが、木を作ることにした
int n,x;
scanf("%d",&n);
Tree **tab;
tab = (Tree **) malloc(sizeof(Tree*)*n);
Tree *n = 0;
tab[0] = new Tree(0);
for(int i=1;i<n;++i) {
scanf("%d",&x);
n = new Tree(x);
tab[i] = n;
tab[i-1]->children.push(n);
}
delete n;
ので、私は必要〜n =新しいツリー(x)。ツリーの新しいオブジェクトへのポインタになり、このポインタ を[i]の場所のタブに追加し、このポインタをタブ[i-1]要素の子に追加します。 このコードは何が問題なのですか? これらの行はコンパイルされません:
n = new Tree(x);
tab[i] = n;
エラーで:
- line: Value ot type "Tree *" cannot be assigned to an entity of type "int".
- line: Value ot type "int" cannot be assigned to an entity of type "Tree *".
related:[C++の動的ツリー](http://stackoverflow.com/questions/9452341/dynamic-tree-in-c) – amit
書式を修正してください。テキストを選択し、質問エディタで** {} **ボタンをクリックすることで、テキストをコードとしてフォーマットすることができます。 –
また、「動作しない」と定義してください。具体的に何が問題なのですか? –