老沙课堂

27 篇文章
5.2K 次阅读
12 人订阅

全部文章

老沙

如何利用CocoaPods创建私有库

15330
老沙

数据结构与算法(十二) 红黑树

•节点是有颜色的Red/Black•根节点必须是Black•叶子节点必须是Black•红黑树的叶子节点会自动将度为0 或者度为1的节点的度自动补充为2,补充的节...

17520
老沙

数据结构与算法(十一)B树

•1个节点可以存储超过2个元素、可以拥有超过2个子节点•拥有二叉搜索树的一些特质(小的子节点在左面 大的子节点在右面)•平衡,每个节点的所有子树高度一致•比较矮

14530
老沙

据结构与算法(十) AVL树

因为无法改变添加删除顺序(用户操作决定),所以在每次操作之后,让二叉树达到平衡状态。

14520
老沙

数据结构与算法(九)二叉搜索树的删除操作

•前驱节点:中序遍历时的前一个节点•如果左子树存在,从该节点的左子节点的最右的节点。•如果左子树 == null && 父节点!= null 父节点为父节点遍历...

26820
老沙

据结构与算法(八) 二叉树的练习

•设定levelSize初始值为1(只有一个根节点)•当进行while循环的时候 levelsize-- 操作。因为levelSize和每层节点个数相等。所以当...

14630
老沙

数据结构与算法(六) 二叉树遍历

•任意一个节点的值都大于其左子树的值•任意一个节点的值都小于其右子树的值•他的左右子树也是一颗二叉搜索树•二叉搜索树可以大大提高效率(搜索和添加删除时间复杂度都...

17330
老沙

数据结构与算法(五) 队列

•先进先出原则(First In First Out) FIFO•队尾(rear):只能进行入队操作(enQueue)->添加元素•队头(front):只能进行...

11710
老沙

数据结构与算法(六) 二叉树

•每个节点的度最大为2。•左子树和右子树是有序的。•即使某个节点只有一颗子树,也要区分是左右子树。

11620
老沙

数据结构与算法(四)栈

栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作...

18250
老沙

数据结构与算法(三)链表

•插入操作的时候 如果想在角标1添加,要找到角标1的上一个元素。•边界问题 例如首个元素添加 以及最后一个元素添加

12520
老沙

TaggedPointer

由于test 修饰为nonatomic 所以是线程不安全的。当多条线程同时访问,造成多次release ,所以坏内存访问。

11720
老沙

isa详解(一)isa结构

为什么要用union以及位运算呢。因为在计算机中为二进制。位运算是最快速的计算方式 union C++ 中的共用体。顾名思义 就是在union 中 公用一个内存...

43630
老沙

isa详解(二)cache和散列表

源码中查找 objc_destructinstance 销毁一个实例对象。发现需要进行相关判断。所以如果没有的话。释放更快

13340
老沙

消息转发及super

**消息转发的时候。由于oc的底层原理是消息机制,所以可以添加c语言函数等 **

13110
老沙

super(二) 以及内存分布

在ViewController 书写以下代码。问是否能编译通过,如果可以输出什么是什么?

14120
老沙

RunLoop详解

线程刚创建的时候没有Ru nLoop对象,RunLoop会在第一次获取它的时候创建

14820
老沙

多线程(一) 有关死锁以及串行并发同步异步概念

performSelector: withObject: 底层调用[self msgSend];

15530
老沙

Objective 锁

由于锁是自旋锁,线程不会休眠,所以当低优先级线程先对操作进行Lock造作后,CPU调度高优先级线程造作,由于低优先级别UnLock就调用高优先级线程。高优先级...

19420
老沙

iOS读写安全

给属性添加atomic 可以保证属性的setter和getter原子性操作,也就是保证setter和getter内部是线程同步的

21630

扫码关注云+社区

领取腾讯云代金券