二叉树:B+tree等

二叉树:(树是一种可以递归定义数据结构)

  度:节点的个数

  深度:层数(即从根点到叶子节点的层数)

  满二叉树:指底层叶子节点左右均存在的二叉树。

  完全二叉树:指底层叶子节点的右侧均存在的二叉树。

  一般二叉树(非完全二叉树):除了上述的满二叉树,完全二叉树外的其他二叉树。

  二叉树的表示方法:

     双亲表示法:把树存入列表,再建立一个列表对应存数父节点的索引(根节点对应存-1)

    孩子表示法:把树存入列表,再建立一个列表对应存孩子节点的地址,无子节点的后为None

    双亲孩子表示法:把双亲表示法和孩子表示法结合起来(建立三个列表)

  二叉树转成线性:

   先序遍历:先访问根节点,再先序遍历左子树,再先序遍历右子树

   中序遍历:先中序遍历左子树,再访问根节点,再中序遍历右子树

   后序遍历:先后序遍历左子树,再后序遍历右子树,再访问根节点

   注意:根据先序/后序和中序可以求出一个二叉树

mysql搜索引擎,的底层原理(目前常用版本)使用的就是B+tree。

  搜索引擎:

      1.InnoDB(聚簇索引:行级锁)只有一个*.ibd文件

         可靠性高,包含事务处理和外键支持(不保存表的具体行数),在执行select count(*) fromtable时,需要扫描一遍整个表。AUTO_INCRMENT类型中,必须包含只有该字段索引,没有办法进行联合索引。

      2.MYSAM(非聚簇索引,需要回航,表级锁),有有三个文件 .MYI,.MYD,*.MYF;不支持事务等高级处理。但是myisam类型的表调的是性能,它的执行速度比InnoDB类型更快。执行select count(*) fromtable时,只需要读出保存好的行数就行啦。 AUTO_INCRMENT类型(主键)中,可以和其他字段建立联合索引。

大根堆,小根堆的概念:

  1.大根堆 :一颗完全二叉树,满足任意一个节点都比其孩子节点大

  2.小根堆:一颗完全二叉树,满足任意一个节点都比其孩子节点小

  

B+tree 简单来讲就是在叶子节点的位置建立链表。。。

猜你喜欢

转载自www.cnblogs.com/yanhui1995/p/10765096.html