9

二分探索木に関して2つの質問があります。どちらも空の木についてです。

  1. 空の木(null)は有効ですか?
  2. 子のないルートノードは有効ですか?
4

7 に答える 7

11

はい、そしてはい。

于 2009-05-01T10:18:01.140 に答える
2

もちろん、空のツリーが何であるかは、「有効」という言葉の意味と同様に、実装によって異なりますが、一般的には、両方の質問に「はい」と答えます。空のツリーは、対象となるエンティティのセットが空の場合を表し、単一ノードは、セットに1つのエンティティが含まれている場合を表します。

于 2009-05-01T10:17:51.827 に答える
2

子のない単一のノードは確かに有効であり、バイナリツリー構造によると:

(可変)二分木BiTreeは、空の状態または空でない状態にすることができます。

  • 空の場合、データは含まれていません。
  • 空でない場合は、ルート要素と呼ばれるデータオブジェクトと、左側のサブツリーと右側のサブツリーと呼ばれる2つの異なるBiTreeオブジェクトが含まれます。

完全を期すために、このウィキペディアのエントリは、用語などの非常に便利な要約です。

于 2009-05-01T10:20:16.737 に答える
1

空の木(null)は有効ですか?

空の場合、ツリーはありません。したがって、妥当性の問題は発生しません。

子のないルートノードは有効ですか?

はい。それは1つの要素だけが入っているティーです。

于 2009-05-01T10:19:51.107 に答える
1

リンゴとオレンジを混ぜ合わせていると思います。

  1. nullは一部のプログラミング言語の値であり、データ構造の実装の具体的な表現に関連しています。
  2. 「空」は、「二分探索木」と呼ばれる抽象データ構造のプロパティです。

これで、ツリーは順序集合になります。それ以上でもそれ以下でもありません。もちろん、セットは空にすることができます!これは、実装では、次のようなものであることを意味します。

MyTree tree = null

空の木を表しますか?まあ、それはあなたのモデルに依存します。たとえば、空のサブツリーは、値がなく、リーフへの参照が無効になっているノードで表される必要があると考えることができます。そのモデルでは、nullポインタは論理的な観点からは無意味です。しかし、これは1つのアプローチにすぎません。歩哨ベースのアプローチはプログラミングするのが楽しいですが、それはメモリを拡張します。その後、nullだけで空のノードをモデル化できます。その場合、nullポインタは空のツリーにすることができます。

于 2009-05-01T10:36:34.387 に答える
0

二分木は再帰的に次のように定義できます。

A single node with either no children, or with two children - 
each of which is a binary tree.
于 2012-11-30T20:06:48.253 に答える
0

はい、両方の条件が当てはまります。二分木の場合、各ノードは0、1、または2つの子を持つことができます。ツリーにルートノードのみがあり、他のノードがない場合、それはNULLツリーと呼ばれます。

于 2012-12-02T12:30:46.160 に答える