wvogel日記

自分用の技術備忘録が多めです.

二分木

今日は朝から忙しかったー。


8時に親の運転で家を出て、高知人と僻地のキャンパスまで大移動。
今日は漫才のリハーサル。
カップ麺のお湯が出ないなどのハプニングがあったり。


一番乗り
練習してたら、ウッチーらも到着。
リハを終え、駅までてくてく。
..........遠い
......暑い........
アイスを買って、モノレールでまったり。
各自それぞれの目的地で解散、私は駅を乗り換え乗り換え、バスに乗って。
午後からは余興です。
到着したら汗だく
もう設営は終わっていたので、冷えたお茶などいただきながらしばしまったり。


はじめ、神ーの桃太郎、亜一陣のまんじゅう怖い
中入はさんで、
富山人の動物園、私の二十四孝


まだまだだなあ
もっと練習しなければ


うなぎ定食をごちそうになり、
もちきちの煎餅もいただき、17時ころ解散。
富山人と駅で分かれた後、ホームでなんと冥王星に遭遇。これから買い物に行くそうで。


帰宅
夕食に、とうもろこし、魚、ご飯、豆腐、酢の物、蓬莱などいわんさかでてくる
食べきれなかったー


それからHaskellでプログラミング。
前書いてた木の方針では、一度、構造を分解してやらないとどうにも難しいなあ、戸重い、単純に数字のリストから2分木を作成していくことに

data Tree a = Empty
                | Leaf a
                | Branch a (Tree a) (Tree a)
                            deriving Show

main = do cs <- getLine;
            print $ cs;
            print $ f 0 (length $ words cs) (words cs)

f :: Int -> Int -> [String] -> Tree Int
f p n str@(t:ts)
    | drop p str == [] = Empty
    | p*2+1>=n= Leaf (read$head$drop (min (n-1) p) str)
    | p < n = Branch (read $ head $ drop p str)
                            (f (p*2+1) n str)
                            (f (p*2+2) n str)