データ構造

C# ConcurrentCollections

ConcurrentCollectionsでスレッドセーフなデータ操作ができる。 ただし、RaceCondition(メソッド呼び出し間に、別スレッド・プロセスの操作により値が書き換わる現象)に注意する。言語が違っても考え方は同じと思うので、メモしておく。 ConcurrentQueue …

二分探索木(java版)

コードにバグが存在していました。 後日、修正したプログラムで再測定を行います。 申し訳ございませんでした。以下の記述は多くが誤りとなりますので、ご理解のうえご覧ください。 まことに勝手ながら、諸事情により二分木についての解説を11/29に変更させ…

単方向リスト(カーソル版)

ポインタではなく配列を利用した単方向リスト。 空き領域の管理が面白かった。

単方向リスト(ポインタ版)

ポインタを利用した単方向リスト。 容易に可変長のリストが作れるかわり、メモリ消費量が増えます。 操作を限定すればキューとしても、リストとしても使用できます。 発展版として、双方向リストや循環リスト、二分木が存在します。

キュー(リングバッファ)

First In First Outのデータ構造です。 リングバッファ版は空き領域を埋めるためにずらす処理が不要となるため、通常の配列を使用した実装より高速です。

スタック

Last In First Outのデータ構造。 データを取り出すと最後に追加したデータが取り出されます。