2005-08-01から1ヶ月間の記事一覧

はじめての C

「二分木 続き 11」 さて、skip list の 構築と 削除の 実際の algorithm ですが、ここが (一番) おもしろいところです。 もっとも 効率的とは いえませんが、これは もっとも シンプルなものの 1つです。 skip list の いいところの 1つは、それを 理解する…

本の整理

家に どんな本が あるのか、整理していたのが やっと 終わった (5000冊以上 ?)。 本来なら いつでも 手に取れるところに 置きたいのだが、さすがに それは 無理のようだ。 興味あります ? → コチラ

はじめての C

「二分木 続き 10」 skip list は、ランダム数 = 乱数を 使うことで、効率のよい 構造を つくりあげる、確率的な - probabilistic - データ構造です。 その方法は、(以前 つくった) ランダムに構築する - randomized - 二分木と 同じく、乱数を その 挿入 al…

はじめての C

「二分木 続き 9」 int avl_remove(struct Avl **tree, struct Avl *old_item) { struct Avl *heir; int rv; /* Delete */ if (*tree == old_item) { if left == NULL && (*tree)->right == NULL) { /* No children, unlink the node */ *tree = 0; return 1…

はじめての C

「二分木 続き 8」 int avl_insert(struct Avl **tree, struct Avl *new_item) { /* empty tree */ if (*tree == NULL) { *tree = new_item; return 1; } if (compare((*tree)->data, new_item->data) > 0) { /* Move left */ if ((*tree)->left != NULL) { …

はじめての C

「二分木 続き 7」 AVL とは、この algorithm を 生みだした 2人の 数学者 Adelson-Velsky と Landies の 2人を 意味しています。 基本となる 考え方は、それぞれの ノードの 左の分肢の 高さと、右の分肢の 高さを 比べて、その差が 必ず 1 以内に 収まるこ…

はじめての C

「二分木 続き 6」 splay木では、root への 挿入の 変更 - modification - を 利用することで、どちらの 最悪の ケースとなる 可能性も 除くように 考えられています。 必要となる 変更は 最小限ですが、一番 効果的に なるよう、挿入と 検索ルーティンの 両…

はじめての C

「二分木 続き 5」 つりあいの とれた 二分木には、代表的なものが 3つ あります。 はじめの 2つは、この tutorial で 扱うことになる spray木と AVL木です。 もう 1つの red-black木ですが、この tutorial では、簡単な 説明だけに しておきます。 でも 多…

はじめての C

「二分木 続き 4」 データが ランダム順に 挿入されるのを 保証することで、二分木は 2つの 最悪のケースと なるのを 免れます。 これが、なぜ ランダム順での 入力を 試みたのかという (理由) なのです。 しかし、もし データが ランダムでは なかったとき…

はじめての C

「二分木 続き 3」 root の ノードが あると、どうして 木の つりあいを とることが できるんでしょう ? それは、分割 - partition - という トリックに あります。 木の ノードの どれかを 選んで、それを root の ノードに できるように したい、と します…

はじめての C

「二分木 続き 2」 二分木の つりあいを とる方法では、多くの 場面で、回転 - rotation - という 操作が 必要と なってきます。 回転は、ある分肢の root を、それ自体の もつ 分肢の root の 1つと、その役割を 切り替える - switch -ときに、実行されます…

miscellanies

「議論と その前提 覚え書 (2) 1st ver.」 憲法によれば、裁判所は - その実態は ともかくとして - 三権分立の 一翼を 担っている、いわば、権力機構の 一端で あるわけだ。 そして、戦前戦後を 通じ、 civil court の 立場に 立ったことは 一度も ない。 そ…

はじめての C

「二分木 続き」 二分木 2回目の tutorial では、前に 書いたことのある、木を 変質させる- degenerate - 2つの 最悪のケースを 回避するための、さまざまな 手法を 詳しく 調べることにしましょう。 先に 学んだ アルゴリズムでは、入力時に それが 十分 ラ…

web archive

宇井純「下水処理と日本式利権構造」1997 http://www.sanseido.co.jp/booklet/nankaitusin.html#3 以前、三省堂の小冊子「ぶっくれっと」に 掲載された文章です。日本での「酸化溝」方式の 下水処理施設には、余計なモノが 相当 くっついているみたいですね…