09 2021 档案
数据结构与算法-基础(七)完全二叉树
摘要:完全二叉树判断(判断) 完全二叉树的叶子节点只会出现最后两层,且最后一层的叶子节点都靠左对齐。根据定义来看,度为 1 的节点只会在左子树,度为 1 的节点要么是 1 个,要么是 0 个。 完全二叉树属于二叉树,即每个节点的度最大为 2。 度:节点拥有 n 棵子树,就是度为 n。 判断完全二叉树之前,
阅读全文
数据结构与算法-基础(六)二叉树基础
摘要:摘要 二叉树是树结构中最基础,也是最重要的结构。由二叉树衍生出多种不同类型的二叉树,当学习完二叉树的不同衍生结构后,会发现,都不能逃离二叉树的定义和特定。 树结构 生活中会遇到很多树形结构的场景,比如公司的组织架构、文件目录等等。使用树形结构是出于可以提高效率的目的。 基本概念 树有节点、根节点、父
阅读全文
数据结构与算法-基础(五)队列(Qeque)
摘要:队列的定义 队列也是一种线性表,只能在头尾两端进行操作,主要特点: 队尾:只能从队尾添加元素,叫做入队(enQueue) 队头:只能从队头移除元素,叫做出队(deQueue) 先进先出元素,First In First Out(FIFO) 接口设计 根据队列的定义设计接口如下表: 函数 释义 int
阅读全文
数据结构与算法-基础(四)栈(Stack)
摘要:摘要 前几期探究过动态数组或者链表后,接下来的栈就可以使用线性表的结构再次封装实现。在实现栈 的时候发现,在线性表的基础上,实现起来更简单。 栈这种数据结构应用到很多场景,比如网页之间的跳转等。 栈的定义 栈是一种特殊的线性表,只能在一端进行操作。栈的主要特点有以下几点: 往栈中添加元素的操作,叫作
阅读全文
数据结构与算法-基础(三)- 循环链表(补充)
摘要:上一期整体探讨了一下单向链表。在这基础上补充两个点,分别是单向循环链表和双向循环链表。从字面中可以看出是将链表形成个环结构,区别在于这个环是只能一个方向还是两个方向循环。 单向循环链表 单向循环链表可以理解为将单向链表的最后一个节点指向第一个节点,将链表形成一个环。那么由单向循环链表处理的数组数据接
阅读全文
数据结构与算法-基础(二)单向链表
摘要:摘要 上期共同探究了下动态数组的添加、删除等实现方法,想要再回顾一下的话,点击我去再看看。接下来继续探究数组。 其实,动态数组有个明显的缺点,就是有可能造成内存空间的大量浪费。那么有什么办法可以做到用多少就给多少呢?这时,咱接着探究一下链表,看看能不能解决这个疑问。 链表 话入正题,先说一下链表。链
阅读全文
数据结构与算法-基础(一)动态数组
摘要:摘要 日常开发中,会经常创建数组,并使用数组的添加、删除等方法。现在就是要以数据结构的方式,来探究一下这些方法是怎么实现的。 本文结构先总结 Array 常用的 API,接下来由简单到复杂,由基础到组合思路实现,最后优化细节。你可以按照文章的顺序来梳理思路,去实现一下。 在文章的最后有完整的代码实现
阅读全文
Swift-Button 的 highlighted(高亮)
摘要:摘要 在学习小程序时,看到小程序中的一个样式属性 hover-class,通过设置这个属性,就可以给点击的控件添加一个高亮效果。所以也就萌生了在 Swift 也实现一个类似的功能的想法,开干。 下面代码是给 view 控件添加一个高亮效果,高亮时,页面的背景颜色会 0.8 的透明度显示 // htm
阅读全文
浙公网安备 33010602011771号