亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

類型 stack.Stack 沒有方法 Push

類型 stack.Stack 沒有方法 Push

Go
紅顏莎娜 2022-07-25 11:03:31
編寫堆棧包。package stacktype Stack struct {    data []interface{}}func (s *Stack) IsEmpty() bool {    return len(s.data) == 0}func (s *Stack) Push(item interface{}) {    s.data = append(s.data, item)    //fmt.Println(s.data, item)}func (s *Stack) Pop() interface{} {    if len(s.data) == 0 {        return nil    }    index := len(s.data) - 1    res := s.data[index]    s.data = s.data[:index]    return res}然后嘗試調用它package mainimport (    s "library/stack"    t "library/tree")func preorderTraversal(root *t.TreeNode) []int {    res := make([]int, 0)    if root == nil {        return res    }    // iterative    var stack *s.Stack    stack.Push(root)    // TODO: more logic    return res}func main() {    left := t.TreeNode{1, nil, nil}    right := t.TreeNode{2, nil, nil}    root := t.TreeNode{0, &left, &right}    fmt.Println(preorderTraversal(&root))}但我有一個錯誤stack.Push undefined (type *stack.Stack has no field or method Push)這里有什么問題?編輯:添加樹包只是為了方便package treetype TreeNode struct {    Val   int    Left  *TreeNode    Right *TreeNode}添加了基于 Cerise Limón play.golang.org/p/E4JXjc-Pd0i 的 goplayground 代碼
查看完整描述

1 回答

?
慕蓋茨4494581

TA貢獻1850條經驗 獲得超11個贊

您肯定需要實例化stack變量,而不僅僅是創建一個nil指針。然后它應該工作:

stack := &s.Stack{}
stack.Push(root)

注意:讓我有點困惑的是錯誤消息。當我運行你的程序時,它會恐慌:panic: runtime error: invalid memory address or nil pointer dereference


查看完整回答
反對 回復 2022-07-25
  • 1 回答
  • 0 關注
  • 103 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號