お詫び申し上げます、英語は私の母国語ではありません。グラフはバイナリツリーとして隣接リストとして表現できますか?
これは私の理解で、補助リストとして表されています。これは通常、大部分のグラフでは疎なグラフに使用され、V(頂点数)リストを使用します。したがって、Vヘッドポインタ+ 2e(辺の数)ノードは、無向グラフ用です。したがって、空間複雑度= O(E + V) 任意のノードはV-1エッジ(それ自身を除く)を持つことができるので、ノードの隣接性をチェックするのにO(V)の時間複雑さがある。
O(v + e) これは主にスパースグラフに使用されているため、隣接関係を確認することはめったにありませんが、 V-1が可能な最大値なので、最悪の場合はO(V)です。
私は、リスト(エッジノード)をバイナリツリーにすることができますか? ?ノードAがノードBに隣接しているかどうかを調べるために、時間複雑度はO(logn)であり、線形O(n)ではない。 可能であれば、実際にはかなり頻繁に行われていますか?また、そのようなデータ構造とは何ですか?私はそのような組み合わせは可能だが何も見つけることができなかった場合、グーグルで行ってきた。私がデータ構造を初めて知ったので、誰かが私にこのことを詳しく説明できるのであれば、とても感謝しています。ありがとうございました。
編集:私はバイナリ検索が配列に対して実行できることを知っています。私はリンクリストの表現について話していますが、私はリストに頭を付けるとわかりましたが、わかりました。
ハッシュテーブルとしてそれらを表現してみませんか?フィルファクタおよびスロットの事前割り当ての適切な管理により、ハッシュテーブルを検索することはO(1)である。 –
バイナリツリーでどのように表現していますか?ツリーノードには何が含まれていますか?複数のエッジ/自己エッジを持つ有向グラフを処理できますか?私はそれが本当に "ノードAにノードBに隣接していますか?"という質問に本当に答えることができるかどうか疑問です。 – shole
これはおそらく疎なグラフで、複数の頂点を持つ可能性があります。 – Tearin