c++
HUZCC
Hello World!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
红黑树
红黑树说难不难,说简单不简单,我去看别人写的红黑树教学,是真的看不懂,于是自己想办法,实现了。红黑树性质:性质1. 节点是红色或黑色。性质2. 根节点是黑色。性质3 每个红色节点的两个子节点都是黑色。(从每个叶子到根的所有路径上不能有两个连续的红色节点)性质4. 从任一节点到其每个叶子的所有路径都包含相同数目的黑色节点。插入:插入的节点是红色节点,当插入节点的父亲节点是...原创 2020-01-08 16:12:31 · 575 阅读 · 0 评论 -
Treap树
Treap是真的简单。为了打破类似单调数列插入BST,使树退化为链表的情况,将数据打乱成随机出现的,是个好办法,然而并不是什么时候都适用。树上节点的出现顺序是不可修改的,而Treap则为每个节点新增加一个随机变量,将矛盾转移到这个随机变量上,使得对节点进行比较的时候,具有随机性,从而使得插入,删除等操作的复杂度期望为O(logn)。Treap性质:...原创 2020-01-07 23:33:40 · 285 阅读 · 0 评论 -
AVL树
最古老的平衡二叉树。AVL树性质:1.左右子树高度差不超过1.复杂度:插入O(logn),最多做两次旋转,若干次维护树高。删除O(logn),最坏情况做logn次平衡。旋转操作插入:与BST一样,小于当前节点往左子树,大于往有子树。回溯时平衡树高。删除:递归查找到目标值的节点,1.如果目标节点是单链节点(只有一个儿子),或没有儿子的节点,则就地删除,用空...原创 2020-01-07 23:06:05 · 438 阅读 · 0 评论 -
探究C/C++宏定义的算法原理
在OJ开发学习的过程中,需要考虑一个代码文件长度的问题,那么能不能用宏定义来大幅度的增加预处理之后的代码长度呢?一. 第一次实验:#include<stdio.h>#define a bb#define b ccint main(){ int a; return 0;}为什么不是这样呢: 变量a -> bb -> cccc执行...原创 2019-09-25 21:33:05 · 415 阅读 · 0 评论
分享