2020-08-20  本文已影响0人  Dragon_boy

树结构中的每个节点有其父节点和子节点:



对于树的遍历,一般有三种,先序遍历,中序遍历和后序遍历:

二叉树就是每个节点的子节点不能多于两个,上面的树结构图就是一个二叉树。而二叉查找树是一种特殊的二叉树,即一个节点和两个子树上所有关键值的关系是左子树节点<该节点<右子树节点,比如:

AVL树是带有平衡条件的二叉查找树,它的每个节点的左子树和右子树的高度最多差1。向AVL树插入节点会破坏原有平衡,可以通过旋转操作修正。可以分为两种情况:

单旋转的一个例子:



上面的树插入节点6会破坏节点8的平衡,则在节点7和8之间旋转一次,得到:


双旋转有两种,右左和左右双旋转。比如:



插入节点5,节点6不平衡,且节点5关键值位于2和6之间,不符合查找树条件,首先绕4左旋转,得:



然后绕4右旋转,让4作为根节点,得:

B树也是一种常用的查找树,比如M阶:

所有的数据都存储在树叶上,在每一个内部节点上皆含有指向该节点各子节点的指针P1、P2、...、PM和分别代表在字数中法线的最小关键字的值k1、k2、...、kM,对于每一个节点,其子树P1中所有关键字小于子树P2上的关键字,以此类推。比如一个3阶B树,也可称为2-3树:



用椭圆表示非树叶节点,每个节点有两个数据,短横线表示该节点只有两个子节点。树叶用方框画出,框内有关键字,树叶中的关键字是有序的

上一篇 下一篇

猜你喜欢

热点阅读