1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ツリー構造をなすクラスを作る(その4)

Last updated at Posted at 2024-02-02

Nuget-TreeStructures

必要と思う機能は一通り書き上げたつもりなので一旦の完成とします。

使い方、仕様については wiki に書きました。
当初とはクラス名やメソッド名に変更があります。

CombinableObservableCollection<T>ReadOnlySortFilterObservableCollection<T>Comparer<T>.Invert()のようにコレクションに関するコードも追加しました。

ツリー構造と関係のないものはあまり書きたくなかったのですが、HierarchyWrapperの実装や派生先でのカスタマイズを考えたときに必要でした。
ツリー構造以外の場面でも使用できるので公開しています。

カスタマイズの部分だけはReadOnlySortFilterObservableCollection<T>を定義しなくてもObservableComputationsを使えたのですが、使うことになるかどうかもわからないライブラリを含めるのは憚られました。

今後の方針

バグ修正に加え、定義済みTreeの追加を思案しています。
名前空間TreeStructures.Tree;は現在、DateTimeTreeとObservedPropertyTreeだけですが、ディレクトリをツリーにするとか、クラスの継承関係をツリーにするとか。

現状では、二分探索木、QuadTree、木の回転のような数学的な部分にはあまり踏み込んでいません。
データ構造としての表現に重きを置いています。
もしこの辺りのコードを書くのであればプロジェクトを分けようかと思います。
と言っても、今のところ書く予定はありません。

おわり。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?