2017-06-16 12 views
2

私はちょうどC++の学習を始めました。プロジェクトのリスト(以下の画像リンク)のツリーを作成する必要がありますが、カスタムツリーか既存のツリーかはわかりません。これはノードとして文字を持つツリーの種類ですか?

ツリー上のビット。大きな青いブロックはリストを表し、小さなブロックはノードを表します。

私はコードや何かを探しているわけではありません。ツリーの説明や情報を見つけることができる場所へのリンクです。

Image Here

+0

私はそれが[Linuxカーネルリンクリスト]によって達成することができると思います( https://isis.poly.edu/kulesh/stuff/src/klist/) – lanyusea

+0

thを説明しようイメージ。それだけで、おそらくあなた自身が答えに近づくでしょう。 –

答えて

1

イメージのデータ構造は、Trieデータ構造です。

Trieは効率的な情報検索データ構造です。トライを使用すると、検索の複雑さを最適な制限(キーの長さ)にすることができます。 - (出典:GeeksForGeeks)

イメージに表示されているのは、
Act、Actual、Actually、Book、Boss、Bore、Board and Boatの文字列です。

いくつかの便利なリンクの詳細を知るために -

0
リスト内のノードの数が膨大なことができない限り、私は

struct List; 
struct Node { 
    // ... node data ... 
    std::shared_ptr<List> list; 
}; 
struct List { 
    // ... list data ... 
    std::vector<std::shared_ptr<Node>> nodes; 
}; 

のようなものを使用したい画像から

、あなたが動的に挿入/の途中からノードを削除する必要がありますリスト。

0

これは私にとって衣装の木のようです。通常、プロジェクトのために、彼らはデータ構造の組み合わせである独自のコスチュームツリーを作成します。例えば、これはリストとリンクされたリストの組み合わせです。

0

あなたが説明しているのは、Trieやプレフィックスツリーの実装です。 https://en.wikipedia.org/wiki/Trie

レベルは、リンクリスト、ビットマップ、配列などさまざまな方法で実装できますが、その背後にあるアイデアは同じです。

関連する問題