树结构

存储方式的分析对比

1、数组存储方式的分析

(1)优点:通过下标方式访问元素,速度快。对于有序数组,还可使用二分查找提高检索速度

(2)缺点:如果要检索具体某个值,或者插入值(按一定顺序)会整体移动,效率较低;数组扩容,需要创建一个新数组,要把原数组数据拷贝到新数组,再插入新元素

2、链式存储方式的分析

(1)优点:在一定程度上对数组存储方式有优化,比如:插入一个数值节点, 只需要将插入节点, 链接到链表中即可,删除效率也很好

(2)缺点:在进行检索时,效率仍然较低,比如:检索某个值,需要从头节点开始遍历

3、树存储方式的分析

(1)能提高数据存储,读取的效率,,比如:利用二叉排序树,既可以保证数据的检索速度,同时也可以保证数据的插入,删除,修改的速度

 

树的构成

1、空树:空集合,空树中没有节点

2、孩子节点/子节点:一个节点含有的子树的根节点称为该节点的子节点

3、节点的度:一个节点含有的子节点的个数

4、叶节点/终端节点:度为0的节点

5、非终端节点/分支节点:度不为0的节点

6、双亲节点/父节点:若一个节点含有子节点,则这个节点称为其子节点的父节点

7、兄弟节点:具有相同父节点的节点互称为兄弟节点

8、树的度:一棵树中,最大的节点的度

9、节点的层次:从根开始定义起,根为第1层,根的子节点为第2层,以此类推

10、树的高度或深度:树中节点的最大层次

11、堂兄弟节点:双亲在同一层的节点互为堂兄弟

12、节点的祖先:从根到该节点所经分支上的所有节点

13、子孙:以某节点为根的子树中任一节点

14、森林:由m(m>=0)棵互不相交的树的集合称为森林

15、层次序列按从上到下(从顶到底),从左到右来排序

 

性能总结

算法(数据结构) 最坏情况下的运行时间的增长数量级(N 次插入之后) 平均情况下的运行时间的增长数量级(N 次插入之后) 是否支持有序性相关的操作
查找 插入 查找 插入
顺序查询(无序链表) N N N / 2 N
二分查找(有序数组) lgN N lgN N / 2
二叉树查找(BST) N N 1.39 * lgN 1.39 * lgN
2-3 树查找(红黑树) 2 * lgN 2 * lgN 1.00 * lgN 1.00 * lgN
posted @   半条咸鱼  阅读(269)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
点击右上角即可分享
微信分享提示