数据结构

红黑树探索笔记

最近花了些时间重拾数据结构的基础知识,先尝试了红黑树,花了大半个月的时间研究其原理和实现,下面是学习到的知识和一些笔记的分享。望各位多多指教。本次代码的实现请点击:红黑树实现代码 - gist红黑树基础知识定义红黑树是带有 color 属性的二叉搜索树,color 的值为红色或黑色,因此叫做红黑树。对红黑树的每个结点的结构体定义如下:struct RBNode {

[PHP内核探索]PHP中的哈希表

在PHP内核中,其中一个很重要的数据结构就是HashTable。我们常用的数组,在内核中就是用HashTable来实现。那么,PHP的HashTable是怎么实现的呢?最近在看HashTable的数据结构,但是算法书籍里面没有具体的实现算法,刚好最近也在阅读PHP的源码,于是参考PHP的HashTable的实现,自己实现了一个简易版的HashTable,总结了一些心得,下面

Hash Table

散列表,实际上也可以叫做Hash Table. 他其实是一种数据结构, 类似字典也是key/value pair. 或者应该说,是字典 base on Hash Table. 因为散列表才是真正的key/value pair. 而本质上,hash table 的结构, 是在key与value之间加上一层映射函数的.首先, 我们的值都是存在RAM中的, 并且都有表示的唯一id

二叉树

本文引用至: 二叉树树, 实际上是一个非常重要的数据结构, 比如,我们的进程树,文件树,HTML节点树等. 都是依赖这样的一个结构. 树,实际上是一种非线性的数据结构,但是他们是有序的. 如下图每一个节点下面,都有本身的value,parent_node,child_node属性(除了根节点).树的基本概念每颗树都有根节点,叶子节点, 子节点,父节点的属性. 如果按 树组分

跳表 skiplist

最初知道跳表(Skip List)是在看redis原理的时候,redis中的有序集合使用了跳表作为数据结构。接着就查了一些资料,来学习一下跳表。后面会使用java代码来实现跳表。跳表简介跳表由William Pugh发明。他在论文《Skip lists: a probabilistic alternative to balanced trees》中详细介绍了跳表的数据结构和

如何打造100亿SDK累计覆盖量的大数据系统

作为推送行业领导者,截止目前个推SDK累计安装覆盖量达100亿(含海外),接入应用超过43万,独立终端覆盖超过10亿 (含海外)。个推系统每天会产生大量的日志和数据,面临许多数据处理方面的挑战。 首先数据存储方面,个推每天产生10TB以上的数据,并且累积数据已在PB级别。其次,作为推送技术服务商,个推有很多来自客户和公司各部门的数据分析和统计需求,例如:消息推送和数据报表。

产品经理该不该设计数据库表?

前段时间,读友群里有朋友吐槽产品经理设计表多次给开发挖坑,引起了群内读友的大讨论,产品经理到底该不该设计数据库表?其实这个问题也不仅仅只有他们公司存在,估计很

Axure高保真教程:树筛选中继器表格

树和表格是信息系统中两个重要的元件,树结构是一种层次化的数据结构,它以树的形式展示数据的层次关系;表格是一种二维结构,由行和列组成。每一行表示一个记录,每一列表

一文读懂实体分类

实体建模是高级产品经理的基本能力,在此之前搞清楚实体有哪些是基础中的基础,便于我们把现实世界的业务更好的组织关联架构起来。01 物理实体:拿来就用的实体物理实体是最直观的,它们就是我们日常生活中看到的