思维导图之节点结构
大家好,最近贵公司招兵买马,求能人异士一起写代码,有简历就投递到我的邮箱 atmanpro@163.com ,我的美女大连秘书会联系您预约面试喔!
招聘要求:
本科以上,三年工作,热爱代码,想做点东西的人
加入我们的好处:
优秀的开发者一起,相互提高,相互切磋。薪酬可观。
如果要打造一个思维导图的控件。我们基本可以推断出这个结构是一个树形结构。而树形结构的节点模型是怎样的呢?它将具备啥属性呢?
- 指向父节点
- 子节点集合
- 当前的层级
- 是否关闭节点
- 是否当前对焦的节点
由于这个节点是一个抽象的概念,所以我把它看做为一种泛型,这样它就可以携带更多其他拓展属性。
根据以上的分析我们可以编写出节点代码如下
package com.owant.thinkmap
import java.util.*
/**
* created by Kyle.Zhong on 2020/6/8
* 节点
*/
open class NodeModel<T> {
/**
* 父节点
*/
var parentNode: NodeModel<T>? = null
/**
* 当前节点的数据
*/
var nodeValue: T
/**
* 子节点集合
*/
var childNodes: LinkedList<NodeModel<T>>? = LinkedList<NodeModel<T>>()
/**
* 当前的层级
*/