0
最近、私は、このようなポインタによる配列によるツリーの実装のメリット?
struct Node{
Node *parent;
vector<Node*> child;
Node(void):parent(nullptr){}
}
として構造体でツリーを実装学んだ私は 、これは木を実装するためにはかなりまっすぐ進むべき道であると思ったし、また、構造体の中のプロセスのためのより多くのものを含めることが容易です。
しかし、多くの人のコードでは、 はポインタの代わりに配列を使用する方が好きです。 バイナリツリーではこれを理解することができました。配列でもそれを行うのはかなり簡単ですが、 でも、他の複雑なグラフではなぜですか?
あなたはおそらく[ポインタすべて](http://en.cppreference.com/w/cpp/memory)を使用したくないでしょう。 –
私がクラスで学んだやり方は、この種の構造体を使って接続グラフを表現しようとすると、配列の配列が密集グラフ(配列がかなりいっぱいになるので)には適していますが、グラフ代わりにポインタ(リストの配列)を使用してスパース(少ない接続)です。データ構造の選択は、常にアプリケーションによって異なります。 – Daniel
@πάνταῥεῖどうしてですか?私はそれの後ろに推論が表示されない場合、ツリーが完全に満たされていない場合は、配列は多くのメモリを浪費しないだろうか? – haleyk