算法数据结构
Dachao1013
华为全栈工程师一枚,多分享,多总结,加油!
微信号yc299792
欢迎来扰
展开
-
二叉树的遍历-递归和非递归实现
文章目录二叉树的遍历递归遍历非递归遍历总结二叉树的遍历二叉树遍历就是遍历每一个节点,比较常用的就是前中后序遍历的方式,本文介绍递归遍历和非递归遍历两种方式。前序遍历:就是先输出根节点,再左节点再右节点。中序遍历:先左节点,再中节点再右节点,如果是有序的二叉树,这种方式输出就是有序的。后序遍历:先左节点,再右节点,最后根节点。所谓的前中后就是什么时候输出或者说操作根节点。递归遍历递归...原创 2020-01-17 10:29:26 · 293 阅读 · 0 评论 -
ACE中的单例模式
ACE中的单例模式ACE中的单例就是利用ACE_Singleton这个类去管理其他类的单例,需要实现一个单例类的时候只需要做两件事:将自己的类T的构造和析构函数都私有化,为了防止用户去生成和释放对象。然后把ACE_Singleton<T,ACE_LOCK>类声明为自己的友元类,然后就可以调用友元类的instance方法获得自己的单实例,这个单实例不用自己管理,可以使用typed...原创 2020-01-05 21:05:32 · 567 阅读 · 0 评论 -
过滤器模式-Nginx是怎么用的
过滤器模式-Nginx是怎么用的过滤器模式:什么是过滤器大家应该都知道,常见的就是对自来水一层层过滤,那么抽象出来的话,就是有一个流,然后层层把关,每一次都筛选。在我们的软件设计中经常会有这样的应用,比如对一些信号的拦截,也是过滤器模式的思想。再或者一些网络框架中的中间件设计,利用中间件对数据进行处理也是过滤器思想。那么Nginx中怎么使用这种思想的,Nginx中利用过滤器来处理http的r...原创 2020-01-04 09:26:06 · 816 阅读 · 0 评论 -
epoll-select-poll,红黑树的应用
前言关于epoll和select还有poll这三个东西,一直经常听到,自己也去弄过他们的原理,但是大都没有总结,就着红黑树的学习,再一次去理解epoll底层的一些实现,现在就来总结一下这三个到底是个啥。概念epoll:epoll到底是什么,epoll其实就是一种I/O事件通知机制,是Linux实现I/O多路复用的一种手段,(好吧我知道这就话说完基本就蒙蔽了,不用怕继续看)。I/O:就是in...原创 2020-01-02 15:30:34 · 1986 阅读 · 2 评论 -
红黑树应用之Linux内存管理
红黑树特性Linux内存管理有这么一句话:如果对查找效率要求过高,而且又需要平凡的去增删改操作时就应该想到使用红黑树!因为红黑树的特性就是:查找效率较高,增删效率也较高,自身是平衡的,没有AVL树强平衡,所以它在删除操作时要比AVL树优秀很多,红黑树来源于2-3树,它的五条性质都来源于2-3树,就是高度和宽度之间的博弈,而且每条性质都顺其自然。有兴趣可以研究一下,真的很有意思哦。Linux内存...原创 2020-01-02 10:50:30 · 897 阅读 · 0 评论 -
Nginx中Timer的实现-红黑树的应用
NginxTimer的实现在说主题之前先来说一下Linux中Timer的实现:在Linux中,设置定时器,是通过每次系统定时器时钟的中断处理程序来设置相应的软中断位,然后通过这个中断处理程序扫描系统中所有挂起的定时器,如果发现哪个定时器超时了就调用相应的处理函数,也就说Linux定时器是通过系统中断实现的。在Nginx中,Timer是自己实现的,而且实现的方法完全不同,它是通过一个红黑树去维护...原创 2020-01-01 20:23:58 · 1219 阅读 · 4 评论 -
STL中的map、set(学完红黑树后的一个小总结)
树介绍树是一种很常用的数据结构,在很多地方都能看到树的应用,因为树往往可以用来优化数据查找的效率。在一些优秀的系统中就会经常用到各种树结构,比如红黑树、AVL树、B树等。红黑树的应用:原理:根节点是黑色的只有红黑节点叶节点都是黑色的nil红色节点子节点必须是黑色的对每个节点,从该节点到叶子节点路径上的黑节点数目一致,黑平衡性质以上的五个性质保证了红黑树是平衡的,所以红黑树的...原创 2020-01-01 17:49:33 · 398 阅读 · 0 评论 -
动态规划-看完就会系列
前言第一眼看到动态规划四个字,我的感觉是,好像很牛逼的样子,是不是很难啊,其实掌握了一定套路后,真没那么难。描述:动态规划就是一种解决问题的方法,什么方法呢?就是利用已经知道的解去求解未知问题的解,如果这两个问题之间存在一定的联系,那么就可以用已知解加上这个联系得到未知解了。比如你想去求1+1+1这个问题的解,那么我告诉你1+1=2,那么1+1+1就是1+1的解再加上1喽,这就是他们之间的...原创 2019-12-23 16:35:05 · 221 阅读 · 0 评论 -
谈一谈算法与数据结构-及一些忠告
概念算法:任何一个良定义的计算过程,该过程取某个值或者值的集合作为输入并产生某个值或值的集合作为输出。这是比较概念化的定义,我们来分析一下,算法到底是什么,比如有一个问题:计算1到10所有整数的和,你现在需要解决它,就得一步一步计算先算什么,再算什么,一步一步直到把问题的答案计算出来,那么计算的这个过程就是算法。数据结构:数据结构是一种存储和组织数据的方式,旨在便于访问和修改。对于数据结构,其...原创 2019-12-20 10:27:23 · 264 阅读 · 0 评论