golang達成するために、ソート、バイナリツリー挿入を使用して

理解していない良いアイデア、ブレークポイントを使用

メインパッケージ

インポート " FMT " 

タイプのツリー構造体{ 
    値INTが
    右から左、 * ツリー
} 

FUNCソート(値[] int)を{ 
    VARルートツリー
     のための _、V:= 範囲の値{ 
        ルート = 追加(ルートを、V)
    } 
    appendValues (値[0]、根)
} 

FUNCのappendValues(値[] INT、T * ツリー)[] INT {
     なら T =!ゼロ{  = appendValues(値、t.left) =アペンド(値は、T。値) = appendValues(値、t.right)
    } 
    戻り
} 

FUNCアド(T *ツリー、値int)* ツリー{
     もし T == ゼロ{ 
        T = 新しい(ツリー)
        t.value = 戻りT 
    } 
    であれば値< t.value { 
        t.left = 追加(t.left、値)
    } { 
        t.right = 追加(t.right、値)
    } 
    戻りT 
} 

メインFUNC(){ 
    VAR一覧 = [] INT {5、1、8、3、6 } 
    fmt.Println(リスト)
    ソート(リスト)
    fmt.Println(リスト)
}

 

おすすめ

転載: www.cnblogs.com/xiangxiaolin/p/11901691.html