腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
首页
学习
活动
专区
工具
TVP
最新优惠活动
返回腾讯云官网
老沙课堂
专栏成员
举报
27
文章
18254
阅读量
12
订阅数
订阅专栏
申请加入专栏
全部文章(27)
编程算法(18)
二叉树(5)
html(2)
ios(1)
objective-c(1)
swift(1)
java(1)
javascript(1)
bash(1)
api(1)
bash 指令(1)
日志服务(1)
存储(1)
缓存(1)
面向对象编程(1)
unity(1)
auto(1)
block(1)
class(1)
copy(1)
data(1)
dynamic(1)
func(1)
key(1)
model(1)
nstimer(1)
port(1)
self(1)
setter(1)
super(1)
ui(1)
visualization(1)
搜索(1)
搜索文章
搜索
搜索
关闭
数据结构与算法(十二) 红黑树
编程算法
•节点是有颜色的Red/Black•根节点必须是Black•叶子节点必须是Black•红黑树的叶子节点会自动将度为0 或者度为1的节点的度自动补充为2,补充的节点称之为外部节点•外部节点是空想出来的,代码中不会实现•red节点的子节点都是black色•从任意一节点到叶子节点的所有路径包含的black节点数目相同•这里说的叶子节点包含假想出来的叶子节点
老沙
2019-10-23
541
0
据结构与算法(十) AVL树
二叉树
编程算法
因为无法改变添加删除顺序(用户操作决定),所以在每次操作之后,让二叉树达到平衡状态。
老沙
2019-10-15
568
0
数据结构与算法(九)二叉搜索树的删除操作
编程算法
二叉树
•前驱节点:中序遍历时的前一个节点•如果左子树存在,从该节点的左子节点的最右的节点。•如果左子树 == null && 父节点!= null 父节点为父节点遍历,一直到节点关系发生改变。如下图所示。•如果左子树 == null && 父节点== null ,没有前驱节点。
老沙
2019-10-15
870
0
据结构与算法(八) 二叉树的练习
编程算法
二叉树
•设定levelSize初始值为1(只有一个根节点)•当进行while循环的时候 levelsize-- 操作。因为levelSize和每层节点个数相等。所以当levelSize为0的时候,下一个levelSize的大小就等于此时在队列中的元素个数。•当levelSize== 0的时候 •进行赋值下一层的个数 levelSize = queue.size()•此时代表一个层级遍历结束 height++
老沙
2019-10-15
563
0
数据结构与算法(六) 二叉树遍历
编程算法
二叉树
•任意一个节点的值都大于其左子树的值•任意一个节点的值都小于其右子树的值•他的左右子树也是一颗二叉搜索树•二叉搜索树可以大大提高效率(搜索和添加删除时间复杂度都是logn)•二叉搜索树的元素必须是具备可比较性•自定义类型需要指定比较方式•不允许为null•二叉树没有索引的概念
老沙
2019-10-11
480
0
数据结构与算法(五) 队列
编程算法
•先进先出原则(First In First Out) FIFO•队尾(rear):只能进行入队操作(enQueue)->添加元素•队头(front):只能进行出队(deQueue) ->取出元素•一般底层由双链表来实现
老沙
2019-10-11
441
0
数据结构与算法(四)栈
编程算法
栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。
老沙
2019-10-09
424
0
数据结构与算法(三)链表
编程算法
•插入操作的时候 如果想在角标1添加,要找到角标1的上一个元素。•边界问题 例如首个元素添加 以及最后一个元素添加
老沙
2019-09-30
369
0
TaggedPointer
编程算法
由于test 修饰为nonatomic 所以是线程不安全的。当多条线程同时访问,造成多次release ,所以坏内存访问。
老沙
2019-09-29
353
0
isa详解(二)cache和散列表
编程算法
存储
缓存
源码中查找 objc_destructinstance 销毁一个实例对象。发现需要进行相关判断。所以如果没有的话。释放更快
老沙
2019-09-28
536
0
super(二) 以及内存分布
日志服务
编程算法
在ViewController 书写以下代码。问是否能编译通过,如果可以输出什么是什么?
老沙
2019-09-28
621
0
多线程(一) 有关死锁以及串行并发同步异步概念
编程算法
performSelector: withObject: 底层调用[self msgSend];
老沙
2019-09-28
731
0
Objective 锁
编程算法
由于锁是自旋锁,线程不会休眠,所以当低优先级线程先对操作进行Lock造作后,CPU调度高优先级线程造作,由于低优先级别UnLock就调用高优先级线程。高优先级无法处理该操作,而高优先级线程一直调用CPU资源, 系统等待高优先级线程执行完毕后才给低优先级线程资源。
老沙
2019-09-28
641
0
iOS读写安全
编程算法
objective-c
给属性添加atomic 可以保证属性的setter和getter原子性操作,也就是保证setter和getter内部是线程同步的
老沙
2019-09-28
902
0
浅入深出Copy和mutableCopy
javascript
编程算法
由Tagged Pointed 可以知道a b 为Tagged Pointer 对象 想深入了解的的可以看一下我的上一篇文章
老沙
2019-09-28
526
0
数据结构与算法(一) 简单例子理解时间复杂度和空间复杂度
编程算法
所以总的时间为1 + n + n + n + n^2 + n^2 + n^2 = 1 +3n +3n^2 由于计算时间复杂度可以省略常数,系数以及低阶 所以这个算法的时间复杂度为O(n^2)
老沙
2019-09-28
409
0
数据结构与算法(二)数组
编程算法
在堆中连续开辟的一段空间,每个元素占有相同大小的空间。一经开辟,即固定大小,无法改变长短。
老沙
2019-09-28
317
0
block内存管理
编程算法
盏空间的block 不会对外面capture的变量进行强引用 无论weak修饰 还是strong修饰
老沙
2019-09-27
689
0
没有更多了
社区活动
【纪录片】中国数据库前世今生
穿越半个世纪,探寻中国数据库50年的发展历程
立即查看
Python精品学习库
代码在线跑,知识轻松学
立即查看
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
立即体验
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
立即查看
领券
问题归档
专栏文章
快讯文章归档
关键词归档
开发者手册归档
开发者手册 Section 归档