ToDo:
http://www.tees.ne.jp/~sin-x/200910b.html#1201
を見て結構 tree で空間を定数しか使わずに、 かつ計算量 O(N) で free するのって たぶん結構難しいよねーと思って書いてみた。 実際結構難しかった。
http://github.com/shinh/test/blob/183dec99c9f05642488820587bf9e1aa48de94ea/free_tree.c
もちょい綺麗に書けたりするのかなぁ。 あとそもそも間違ってたりすると恥ずいけど、 たぶんあってるよね…
あと free_LIST は
void free_LIST(LIST *list) { if(list){ free(list->name); LIST* next = list->next; free(list); free_LIST(next); } }
としてやれば gcc なら再帰の形のままで stack ni yasasiku なるという話もありますね。
(08:44)
やった。 一晩やってとんとんだったから成績としてはよかったんだけど、 切り間違えとかおかしいリーチとか多かったのはいまいちだった。
あと三色同刻ができたのがうれしかった。
赤入りはただでさえクソゲーの麻雀がさらにクソゲーになると思ってるんだけど、 手作りの楽しみは減るけど、押し引きが際立つ感じはあるかなぁとか思った。 麻雀ってどうせ一点読みとかはそうそうできないので、 上がりに行くか降りるかの判断が一番重要かなぁと思ってるんだけど、 赤入りだと要はドラが2個あればクイタンでもいいから上がりにいって、 1個もなければすぐ降りる、みたいな感じで適当にやってもよくて、 まぁ結局相手が高そうかどうか考えるとかする必要がなくてアレなんだけど、 すぐに降りちゃうヘタレとしては頻繁に降りておいて たまにドラあると攻めていくみたいなのがやりやすいなぁとか。
(18:43)
http://d.hatena.ne.jp/kurimura/20091012/1255340288
紙に書いてしばし考えないとわからなかった。
要は tree を単なる list に変換しつつ 単方向 list になった時点で削除してる、 っていう感じだなぁと僕なりに理解した。
(19:14)
とりあえず tmpfs 使ってみる実装にしてみた。 基本的なチェックはしたけど、まぁそれなりに動いてそう。
やってて思ったんだけど、 dmesg とかに情報残すのは依然として可能だよなー。 まぁ 5B hello とかはできんくなるからいいけど…
あとは process group 一掃するようにするとか setpgid や setpgrp の禁止ってのがあったなぁ。
(23:06)
前 | 2009年 10月 |
次 | ||||
日 | 月 | 火 | 水 | 木 | 金 | 土 |
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
全てリンクフリーです。 コード片は自由に使用していただいて構いません。 その他のものはGPL扱いであればあらゆる使用に関して文句は言いません。 なにかあれば下記メールアドレスへ。
>としてやれば gcc なら再帰の形のままで stack ni yasasiku なるという話もありますね。
でもこれだと「リスト末尾から」にならない
「リスト末尾から」にこだわらないなら再帰にしなくてもふつーにループでいいとおもった
ええ全くですね。まぁ OCaml とか Haskell とかそのへんのせいか、 list を見ると再帰で処理したくなる感はあります。
では、スタック使用量 O(1) で単方向リストを速度 O(N) でリストを後ろから free …はまぁ、2分木にくらべりゃはるかに簡単ですね。