求教,以基础树结构(二叉搜索树)为例:
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(){}
// 备注:之前想过派生,但很明显是不可行的。。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.