dougan5772 2017-01-30 21:59
浏览 119
已采纳

GoLang二叉树-使用界面和结构

I am trying to use Interfaces and Struct in GoLang to create a binary tree concept

I wrote the below code

package main

import "fmt"

type node interface {
    add(a int)
    getval() int
}

type node_element struct {
    element int

    left  *node
    right *node
}

func (c *node_element) add(a int) {
    c.element = a
}

func (c *node_element) getval() int {
    return c.element
}

func main() {

    var s node

    s = &node_element{}

    s.add(1)

    fmt.Println(s.getval())

}

Now how do I instantiate left and right. I am using VIM with Go autocomplete. In auto complete on pressing . there is no list. Which means access to this pointer object to s is not happening

How to instantiate and use left and right ?

  • 写回答

1条回答 默认 最新

  • dongtuo8170 2017-01-30 22:15
    关注

    You don't need to declare s as a node, a *node_element can be used as a node. You also never want to have a pointer to an interface, so change the left and right types to node.

    You can then just assign the fields directly:

    s := &node_element{}
    s.add(1)
    s.left = &node_element{element: 2}
    s.right = &node_element{element: 3}
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 javaweb项目无法正常跳转
  • ¥15 VMBox虚拟机无法访问
  • ¥15 skd显示找不到头文件
  • ¥15 机器视觉中图片中长度与真实长度的关系
  • ¥15 fastreport table 怎么只让每页的最下面和最顶部有横线
  • ¥15 R语言卸载之后无法重装,显示电脑存在下载某些较大二进制文件行为,怎么办
  • ¥15 java 的protected权限 ,问题在注释里
  • ¥15 这个是哪里有问题啊?
  • ¥15 关于#vue.js#的问题:修改用户信息功能图片无法回显,数据库中只存了一张图片(相关搜索:字符串)
  • ¥15 texstudio的问题,