用户:
SKQA查看:2 回复:2 评论:2 创建时间:2020-08-20T21:43:44
树是什么?
思维导图
就是一个树形结构!
例如你在学习的时候
主干就是一个大知识
下层是几个题目类型
再下层就是解题方法
公式、技巧、例题,
……
生活中的树,是有一个树干,上面还有树枝,接着是叶子;那么树形图也是一样,有一个主干,上面还有分支节点,然后是叶子节点。例如:
“节点”就是整个树的点(包括树干、树枝和树叶),“主干”就是树干。“分支节点”(又称“孩子节点”、“子节点”)就是该节点发出去的节点,如主干的分支节点就是节点A、B,节点A的分支节点就是节点C、D。反之,节点A、B的父节点(又称“双亲节点”)就是主干,节点C、D的父节点就是节点A。节点C、D有相同的父节点,所以节点C、D互为兄弟节点。节点C、E虽然没有相同的父节点,但是他们属于同层,所以节点C、E互为堂兄节点。
如何把树形图保存在scratch(kitten)的列表中呢?我们需要一个二维列表,每一行表示属性,每一列表示节点。
例如上面的树形图:
二维列表:data(排版会崩,理解就好)
第1列↓ 第2列↓ 第3列↓ 第4列↓ 第5列↓ 第6列↓ 第7列↓ 第8列↓ 第9列↓ 第10列↓
第1行 id 喵
第2行 造型编号 喵
第3行 X坐标 0 -200 200 -250 -150 25 75 125 -250 75
第4行 Y坐标 -400 -200 -200 0 0 0 0 0 200 200
第5行 父节点id 0 1 1 2 2 3 3 3 4 7
第6行 子节点1的id
第7行 子节点2的id
第8行 子节点3的id
(剩下三行自行脑补)
这种保存方法专业称为树的“链式存储结构”。注意,行和列可以随意交换,顺序没有严格要求,但是需要保证内部元素顺序正确。比如你可以把第1行和第2行交换,第1列和第2列交换,甚至第1列和第8列交换都没有问题。这就是设计数据结构的思想。