二叉树: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)若左子树不空,则左子树上所有结点的值均小于或等于它 ...
随机推荐
- git pull和本地文件冲突
在使用git pull代码时,经常会碰到有冲突的情况,提示如下信息: error: Your local changes to 'c/environ.c' would be overwritten b ...
- hsy单词
题意:略 在ac自动机上,一个节点出现的次数等于能通过fail到它的节点的次数之和.而叶节点就等于它被爬过的次数. #include <iostream> #include <cst ...
- OO-第二单元总结
一.三次作业的设计策略 (1). 第五次作业 第五次作业由于较为简单,在强测及互测中均没有出现BUG,但是并没有做优化.本次的设计有些不合理,所以在后面的作业中也做了重构.本次的作业主要有三个类,主函 ...
- WARING
每一道题都先手玩样例! 认真读一下每一档数据,仔细计算每一档可以拿的分数! 读完题目后,把所有能想到的思路写在纸上. 最优化题目考虑dp和贪心两种方法 字符串题目前缀考虑trie树,后缀考虑fail树 ...
- Flask Vue.js全栈开发
Flask Vue.js全栈开发的 最新完整代码 及使用方式 本系列的最新代码及使用方式将持续更新到: http://www.madmalls.com/blog/post/latest-code/ 1 ...
- ANSI/ISO C 关键字(汇总)
ANSI/ISO C 关键字 汇总: auto break case char const continue default do double else enum extern ...
- oralce 常用sql
查看表空间及其数据文件 SELECT * FROM dba_data_files; 查看用户下的表SELECT * FROM user_tables; 查看用户表的注释SELECT * FROM us ...
- feign调用超时
Feign调用超时 feign调用超时 默认feign调用超时是1秒,断点调试是否调用成功肯定超时 feign.hystrix.enabled=true #feign调用默认是1000毫秒=1秒 ad ...
- 利用itext将html页面转成pdf(不模糊)
1.maven项目进入依赖 <dependency> <groupId>org.xhtmlrenderer</groupId> <artifactId> ...
- Django全文检索(django-haystack+whoosh+jieba)
前言: 全文检索就是针对所有内容进行动态匹配搜索的概念,针对特定的关键词建立索引并精确匹配达到性能优化的目的 class Whoose_seach(object): analyzer = Chines ...