Android技能树 — 树基础知识小结(一),kotlin开源项目

本文深入探讨了树数据结构的基础知识,包括树的特点、存储结构如双亲表示法、孩子链表表示法等。文章通过示例详细讲解了不同表示法的优缺点,并展示了如何在Android开发中应用这些概念。此外,还涵盖了二叉树的基本形态、性质、遍历方法以及分类,如完全二叉树和平衡二叉树的概念。
摘要由CSDN通过智能技术生成

根据上面的基础知识我画了一个归总的图(这样我就不需要写文字介绍了,啊哈哈):

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zd87TfMP-1637304075403)(https://user-gold-cdn.xitu.io/2018/5/4/16329ce71e6b0fec?imageView2/0/w/1280/h/960/ignore-error/1)]

树结构特点

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6WADqgvh-1637304075439)(https://user-gold-cdn.xitu.io/2018/5/4/16329ce6fd9b651e?imageView2/0/w/1280/h/960/ignore-error/1)]

还是用自己画的图来说明:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ciM9luTE-1637304075441)(https://user-gold-cdn.xitu.io/2018/5/4/16329ce6dc4ce0cc?imageView2/0/w/1280/h/960/ignore-error/1)]

存储结构

Android技能树 — 数组,链表,散列表基础小结中,我们介绍了线性存储,链式存储,我们的树可以充分用二者来结合表示。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cO4iSddR-1637304075442)(https://user-gold-cdn.xitu.io/2018/5/4/16329ce70245d2d7?imageView2/0/w/1280/h/960/ignore-error/1)]

我们统一来用上面各种方式来表示下面这个树的存储结构:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-z1xI3x0u-1637304075443)(https://user-gold-cdn.xitu.io/2018/5/4/16329ce718966c44?imageView2/0/w/1280/h/960/ignore-error/1)]

双亲表示法:

在每个结点中,附设一个指示器指示其双亲结点在数组中的位置。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-z0bfzqPo-1637304075443)(https://user-gold-cdn.xitu.io/2018/5/4/16329ce71e4ac1d5?imageView2/0/w/1280/h/960/ignore-error/1)]

因为有十一个结点,所以我们的index为0-10,然后index位置中存储(data + parent的index值),结果如下图所示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aJV69ged-1637304075444)(https://user-gold-cdn.xitu.io/2018/5/4/16329ce739f0a4a3?imageView2/0/w/1280/h/960/ignore-error/1)]

这里我们发现根据index里面的parent指针,很容易知道父结点,但是比如我问知道了E结点,想知道它的子结点是哪几个,就不知道了,只能通过整个结构的遍历。

当然我们可以变相的 多加一个指针:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qlE6u73v-1637304075445)(https://user-gold-cdn.xitu.io/2018/5/4/16329ce7228e20f6?imageView2/0/w/1280/h/960/ignore-error/1)]

如果我们又比较关注兄弟结点之间的关系,可以增加一个右兄弟域来体现兄弟关系:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jc9HBddT-1637304075446)(https

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值