猫史档案馆


【教程帖】算法入门 十、树

用户:SKQASKQA查看:2 回复:2 评论:2 创建时间:2020-08-20T21:43:44


树是什么?

思维导图

就是一个树形结构!

例如你在学习的时候

主干就是一个大知识

下层是几个题目类型

再下层就是解题方法

公式、技巧、例题,

……

生活中的树,是有一个树干,上面还有树枝,接着是叶子;那么树形图也是一样,有一个主干,上面还有分支节点,然后是叶子节点。例如:

center_image

节点”就是整个树的点(包括树干树枝树叶),“主干”就是树干。“分支节点”(又称“孩子节点”、“子节点”)就是该节点发出去的节点,如主干的分支节点就是节点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列交换都没有问题。这就是设计数据结构的思想。


回复

上一页1 页 / 共 1下一页
燚卿燚卿

喵(尽管没看懂)

点赞0


评论


SKQASKQA

补充:主干又称根节点

点赞0


评论