2021年10月10日
摘要: 遍历是数据结构中的常见操作,就是把所有的元素遍历一遍。 线性结构的遍历无非是两种,正序遍历和逆序遍历,也就是从头依次遍历或者从尾依次遍历。 二叉树的遍历方式有 4 种,是根据不同的节点访问顺序来区分: 遍历方法 访问顺序 备注 前序遍历(Preorder Traversal) 根节点、左子树、右子树 阅读全文
posted @ 2021-10-10 20:58 我为双鱼狂 阅读(282) 评论(0) 推荐(0)
  2021年9月30日
摘要: 完全二叉树判断(判断) 完全二叉树的叶子节点只会出现最后两层,且最后一层的叶子节点都靠左对齐。根据定义来看,度为 1 的节点只会在左子树,度为 1 的节点要么是 1 个,要么是 0 个。 完全二叉树属于二叉树,即每个节点的度最大为 2。 度:节点拥有 n 棵子树,就是度为 n。 判断完全二叉树之前, 阅读全文
posted @ 2021-09-30 11:49 我为双鱼狂 阅读(404) 评论(0) 推荐(0)
  2021年9月26日
摘要: 摘要 二叉树是树结构中最基础,也是最重要的结构。由二叉树衍生出多种不同类型的二叉树,当学习完二叉树的不同衍生结构后,会发现,都不能逃离二叉树的定义和特定。 树结构 生活中会遇到很多树形结构的场景,比如公司的组织架构、文件目录等等。使用树形结构是出于可以提高效率的目的。 基本概念 树有节点、根节点、父 阅读全文
posted @ 2021-09-26 20:42 我为双鱼狂 阅读(132) 评论(0) 推荐(0)
  2021年9月24日
摘要: 队列的定义 队列也是一种线性表,只能在头尾两端进行操作,主要特点: 队尾:只能从队尾添加元素,叫做入队(enQueue) 队头:只能从队头移除元素,叫做出队(deQueue) 先进先出元素,First In First Out(FIFO) 接口设计 根据队列的定义设计接口如下表: 函数 释义 int 阅读全文
posted @ 2021-09-24 21:07 我为双鱼狂 阅读(152) 评论(0) 推荐(0)
  2021年9月19日
摘要: 摘要 前几期探究过动态数组或者链表后,接下来的栈就可以使用线性表的结构再次封装实现。在实现栈 的时候发现,在线性表的基础上,实现起来更简单。 栈这种数据结构应用到很多场景,比如网页之间的跳转等。 栈的定义 栈是一种特殊的线性表,只能在一端进行操作。栈的主要特点有以下几点: 往栈中添加元素的操作,叫作 阅读全文
posted @ 2021-09-19 15:00 我为双鱼狂 阅读(127) 评论(0) 推荐(0)
摘要: 上一期整体探讨了一下单向链表。在这基础上补充两个点,分别是单向循环链表和双向循环链表。从字面中可以看出是将链表形成个环结构,区别在于这个环是只能一个方向还是两个方向循环。 单向循环链表 单向循环链表可以理解为将单向链表的最后一个节点指向第一个节点,将链表形成一个环。那么由单向循环链表处理的数组数据接 阅读全文
posted @ 2021-09-19 11:13 我为双鱼狂 阅读(168) 评论(0) 推荐(0)
  2021年9月11日
摘要: 摘要 上期共同探究了下动态数组的添加、删除等实现方法,想要再回顾一下的话,点击我去再看看。接下来继续探究数组。 其实,动态数组有个明显的缺点,就是有可能造成内存空间的大量浪费。那么有什么办法可以做到用多少就给多少呢?这时,咱接着探究一下链表,看看能不能解决这个疑问。 链表 话入正题,先说一下链表。链 阅读全文
posted @ 2021-09-11 21:34 我为双鱼狂 阅读(264) 评论(0) 推荐(1)
  2021年9月8日
摘要: 摘要 日常开发中,会经常创建数组,并使用数组的添加、删除等方法。现在就是要以数据结构的方式,来探究一下这些方法是怎么实现的。 本文结构先总结 Array 常用的 API,接下来由简单到复杂,由基础到组合思路实现,最后优化细节。你可以按照文章的顺序来梳理思路,去实现一下。 在文章的最后有完整的代码实现 阅读全文
posted @ 2021-09-08 20:57 我为双鱼狂 阅读(258) 评论(1) 推荐(0)
  2021年9月4日
摘要: 摘要 在学习小程序时,看到小程序中的一个样式属性 hover-class,通过设置这个属性,就可以给点击的控件添加一个高亮效果。所以也就萌生了在 Swift 也实现一个类似的功能的想法,开干。 下面代码是给 view 控件添加一个高亮效果,高亮时,页面的背景颜色会 0.8 的透明度显示 // htm 阅读全文
posted @ 2021-09-04 14:40 我为双鱼狂 阅读(525) 评论(0) 推荐(0)
  2021年8月31日
摘要: 摘要 拿来即用短时间效率虽然挺高的,但是拿来的东西没有消化一次,就无法得心应手的使用它。 这次的探索思路就是,查询官方文档,设置不同的值测试单个方法中参数的变化,之后测试两个方法的执行顺序,处理的思路,最后思考总结。 在总结方法的处理逻辑时,使用伪代码的方式梳理方法的执行思路。避免解释文本太多,增加 阅读全文
posted @ 2021-08-31 21:22 我为双鱼狂 阅读(562) 评论(0) 推荐(0)