Golang Go语言中向大佬们求教一个递归结构体方法派生与扩展相关的问题

发布于 1周前 作者 sinazl 来自 Go语言

Golang Go语言中向大佬们求教一个递归结构体方法派生与扩展相关的问题

求教,以基础树结构(二叉搜索树)为例:

type TreeNode struct{
      Val     int
      Left    *TreeNode
      Right   *TreeNode
}

已经基于这种结构写了 Max()Min()方法,例如:

func (n *TreeNode) Max(){} 

如果想要把基础树结构扩展到红黑树 RBTNode ,相当于基础树结构 TreeNode 多加了 Color 字段:

type RBTNode struct{
      Color   int   // 新加的字段
      Val     int
      Left    *RBTNode 
      Right   *RBTNode 
}

如果想对 RBTNode 调用与扩展属性无关的方法,例如 Max(),只能通过重写一份相似代码的形式来实现吗?例如:

func (n *RBTNode) Max(){} 

// 备注:之前想过派生,但很明显是不可行的。。


更多关于Golang Go语言中向大佬们求教一个递归结构体方法派生与扩展相关的问题的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html

回到顶部