Golang 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