第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

二叉樹遍歷中的意外輸出

二叉樹遍歷中的意外輸出

Go
青春有我 2022-09-12 16:55:38
func New(k int) *Tree// New() returns a random binary tree holding the values k, 2k, ..., 10k.我只是嘗試在戈魯丁中遍歷二叉樹并向通道添加值。然后用主戈魯廷打印它們法典func binary(t *tree.Tree, ch chan int) {    if t != nil {        binary(t.Left, ch)        ch <- t.Value        binary(t.Right, ch)    }}func Walk(t *tree.Tree, ch chan int) {    defer close(ch)    binary(t, ch)}func main() {    ch := make(chan int)    go Walk(tree.New(1), ch)    for i := range ch {        fmt.Printf("%d ", <-ch)        _ = i    }}預(yù)期輸出 =1 2 3 4 5 6 7 8 9 10 結(jié)果 =2 4 6 8 10 
查看完整描述

2 回答

?
犯罪嫌疑人X

TA貢獻2080條經(jīng)驗 獲得超4個贊

在通道上帶有子句的語句從通道接收值,并將它們存儲在循環(huán)變量中。forrange


這意味著該變量將保存從 接收的值,您不需要從 接收。ichch


但是,您沒有使用 ,并且您確實從 接收。因此,您將跳過每兩個元素(如果通道上傳遞的元素數(shù)量奇數(shù),您也可能會被阻止)。ich


像這樣做:


for v := range ch {

    fmt.Printf("%d ", v)

}


查看完整回答
反對 回復(fù) 2022-09-12
?
明月笑刀無情

TA貢獻1828條經(jīng)驗 獲得超4個贊

根據(jù)伊察的建議:


func binary(t *tree.Tree, ch chan int) {

    if t != nil {

        binary(t.Left, ch)

        ch <- t.Value

        binary(t.Right, ch)

    }

}


func Walk(t *tree.Tree, ch chan int) {

    defer close(ch)

    binary(t, ch)

}


func main() {

    ch := make(chan int)

    go Walk(tree.New(1), ch)

    for v := range ch {

    fmt.Printf("%d ", v)

    }

}


查看完整回答
反對 回復(fù) 2022-09-12
  • 2 回答
  • 0 關(guān)注
  • 89 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號