二叉树: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 简单来讲就是在叶子节点的位置建立链表。。。
二叉树:B+tree等的更多相关文章
- [Swift]LeetCode101. 对称二叉树 | Symmetric Tree
Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center). For e ...
- [Swift]LeetCode968.监控二叉树 | Binary Tree Cameras
Given a binary tree, we install cameras on the nodes of the tree. Each camera at a node can monitor ...
- 二叉树(Binary Tree)相关算法的实现
写在前面: 二叉树是比较简单的一种数据结构,理解并熟练掌握其相关算法对于复杂数据结构的学习大有裨益 一.二叉树的创建 [不喜欢理论的点我跳过>>] 所谓的创建二叉树,其实就是让计算机去存储 ...
- 算法与数据结构基础 - 二叉树(Binary Tree)
二叉树基础 满足这样性质的树称为二叉树:空树或节点最多有两个子树,称为左子树.右子树, 左右子树节点同样最多有两个子树. 二叉树是递归定义的,因而常用递归/DFS的思想处理二叉树相关问题,例如Leet ...
- 数据结构-二叉树(Binary Tree)
#include <stdio.h> #include <string.h> #include <stdlib.h> #define LIST_INIT_SIZE ...
- Python与数据结构[3] -> 树/Tree[0] -> 二叉树及遍历二叉树的 Python 实现
二叉树 / Binary Tree 二叉树是树结构的一种,但二叉树的每一个节点都最多只能有两个子节点. Binary Tree: 00 |_____ | | 00 00 |__ |__ | | | | ...
- C++实现二叉树,运用模板,界面友好,操作方便 运行流畅
//.h文件 #ifndef TREE_H #define TREE_H #include<iostream> #include<iomanip> using namespac ...
- 树&二叉树&二叉搜索树
树&二叉树 树是由节点和边构成,储存元素的集合.节点分根节点.父节点和子节点的概念. 二叉树binary tree,则加了"二叉"(binary),意思是在树中作区分.每个 ...
- Python数据结构——二叉树的实现
1. 二叉树 二叉树(binary tree)中的每个节点都不能有多于两个的儿子. 1.1 二叉树列表实现 如上图的二叉树可用列表表示: tree=['A', #root ['B', #左子树 ['D ...
- 数据结构(Java描述)之二叉树
基础概念 二叉树(binary tree)是一棵树,其中每个结点都不能有多于两个儿子. 二叉排序树或者是一棵空树,或者是具有下列性质的二叉树: (1)若左子树不空,则左子树上所有结点的值均小于或等于它 ...
随机推荐
- webpack的安装及使用
webpack 是一个现代 JavaScript 应用程序的静态模块打包器(module bundler).当 webpack 处理应用程序时,它会递归地构建一个依赖关系图(dependency g ...
- SKU : Stock Keeping Unit
Stock Keeping Unit is a number assigned to a product by a retail store to identify the price, produ ...
- yum安装的mysql5.7默认密码
在linux下通过rpm包安装完成MySQL-community-server 5.7后, 需要以root权限的用户检查/var/log/mysqld.log文件查看自动生成的临时密码. 先查看: 1 ...
- vue keep-alive 取消某个页面缓存问题
keep-alive keep-alive是Vue提供的一个抽象组件,用来对组件进行缓存,从而节省性能,由于是一个抽象组件,所以在v页面渲染完毕后不会被渲染成一个DOM元素 <keep-aliv ...
- Eggjs 设置跨域请求
1. 安装egg-cors npm install egg-cors --save 2.打开config/plugin.js exports.cors: { enable: true, package ...
- 【转】PO/POJO/BO/DTO/VO的区别
PO :persistent object持久对象 1 .有时也被称为Data对象,对应数据库中的entity,可以简单认为一个PO对应数据库中的一条记录. 2 .在hibernate持久化框架中 ...
- Response.End ,Response.Redirect、Server.Transfer 引发 “正在中止线程”异常的问题
google后得知:Response.End 方法终止页的执行,并将此执行切换到应用程序的事件管线中的 Application_EndRequest 事件,同时抛出ThreadAbortExcepti ...
- kendo ui DatePicker 时区转换
http://blog.darkthread.net/post-2013-06-25-json-date-timezone-issue.aspx
- 使用线程操作刷新Winform界面
主窗体中添加代码 public FrmMain() { InitializeComponent(); System.Threading.Thread thread = new System.Threa ...
- React 的坑
MemoryRouter 会缓存组件,导致有时候 componentDidMount 不会执行