2020年12月5日

033*:strong和weak,(strong=retain+release)weak(self指针地址和weakSelf地址不一样、 weakSelf没有对引用计数+1)

摘要: 问题 1: weak表其实是一个哈希表,key是所指对象的指针,value是weak指针的地址数组。(value是数组的原因是:因为一个对象可能被多个弱引用指针指向) Runtime维护了一张weak表,用来存储某个对象的所有的weak指针。 2: 当前self取地址 和 weakSelf取地址的值 阅读全文

posted @ 2020-12-05 18:19 风zk 阅读(61) 评论(0) 推荐(0) 编辑

14*:图的应用(最短路径问题):(迪杰斯特拉(Dijkstra)算法、弗洛伊德(Floyd)算法)

摘要: 问题 迪杰斯特拉(Dijkstra)算法 /*用于存储最短路径下标的数组*/ typedef int Patharc[MAXVEX]; /*用于存储到各点最短路径权值的和*/ typedef int ShortPathTable[MAXVEX]; 弗洛伊德(Floyd)算法 //Patharc 父节 阅读全文

posted @ 2020-12-05 11:49 风zk 阅读(387) 评论(0) 推荐(0) 编辑

13*:图的应用:最小生成树普里姆(Prim)算法、克鲁斯卡尔(Kruskal)算法:(通图生成树、设计一个最小成本的⽹网络布线路线、最小生成树普里姆(Prim)算法、克鲁斯卡尔(Kruskal)算法)

摘要: 问题 1:普里姆(Prim)算法 typedef struct { int arc[MAXVEX][MAXVEX]; int numVertexes, numEdges; }MGraph; 2:克鲁斯卡尔(Kruskal)算法 typedef struct { int arc[MAXVEX][MAX 阅读全文

posted @ 2020-12-05 11:48 风zk 阅读(328) 评论(0) 推荐(0) 编辑

12*:图结构初探:(邻接矩阵顺序存储、邻接表链式存储)(邻接矩阵和邻接表以及深度与广度优先遍历)

摘要: 问题 目录 1:图 2:邻接矩阵顺序存储、 3:邻接表链式存储 4:邻接矩阵和邻接表、及深度与广度优先遍历 预备 正文 一:图 1:图的简介 图(Graph)结构是一种非线性的数据结构,图在实际生活中有很多例子,比如交通运输网,地铁网络,社交网络,计算机中的状态执行(自动机)等等都可以抽象成图结构。 阅读全文

posted @ 2020-12-05 11:47 风zk 阅读(319) 评论(0) 推荐(0) 编辑

11*:线索化二叉树和⼆叉树的应⽤-哈夫曼编码(线索二叉树,等于是把一棵二叉树转变成了一个双向链表)(线索化二叉树利用二叉树的空链指针,使每个结点都有了唯一前驱和后继,把非线性结构转换为线性结构。)

摘要: 问题 1:线索化二叉树 /* 线索二叉树存储结点结构*/ typedef struct BiThrNode{ //数据 CElemType data; //左右孩子指针 struct BiThrNode *lchild,*rchild; //左右标记 PointerTag LTag; Pointer 阅读全文

posted @ 2020-12-05 11:46 风zk 阅读(487) 评论(0) 推荐(0) 编辑

10*:二叉树初探:(定义、二叉树、二叉树的4种遍历方法)(二叉数顺序存储、二叉数链式存储)

摘要: 问题 目录 1:树(定义、二叉树、二叉树的4种遍历方法) 2:二叉数顺序存储 3:二叉数链式存储 预备 正文 一:树 树是数据结构中的重中之重,尤其以各类二叉树为学习的难点。 1:定义 树(Tree)是n(n>=0)个结点的有限集。n=0时称为空树。在任意一颗非空树中:1)有且仅有一个特定的称为根( 阅读全文

posted @ 2020-12-05 11:45 风zk 阅读(328) 评论(0) 推荐(0) 编辑

09*:字符串匹配算法KMP算法:(主要是需要理解KMP中next数组求解的必要性以及j 的回溯依据;)(回溯j 值的多少取决于当前字符之前的串前后缀相似度;)

摘要: 问题 目录 1:什么是KMP 2:KMP算法原理 预备 正文 1:什么是KMP KMP算法是在字符串匹配算法中比较绕的.主要是需要理解KMP中next数组求解的必要性以及j 的回溯依据; KMP 算法 是由 D.E.Knuth,J.H.Mores 和 VR.Pratt共同发表模式匹配算法,称之克鲁特 阅读全文

posted @ 2020-12-05 11:44 风zk 阅读(410) 评论(0) 推荐(0) 编辑

08*:字符串匹配算法:BF算法与RK算法(RK算法主要的解决思路就是在BF算法的基础上,将子串转换成哈希值来进行比较,它算是BF算法的升级版。)

摘要: 问题 字符串匹配问题: 给你⼀个仅包含⼩写字⺟的字符串主串S = "abcacabdc",和模式串T = "abd", 请查找出模式串在主串第 ⼀次出现的位置; 提示: 主串和模式串均为⼩写字⺟且都是合法输⼊。 目录 1:BF算法-暴风匹配算法 2:RK算法 3:去除重复字母 预备 正文 1:BF算 阅读全文

posted @ 2020-12-05 11:43 风zk 阅读(538) 评论(0) 推荐(0) 编辑

07:栈思想下相关算法题解析

摘要: 问题 目录 预备 正文 1 注意 1 引用 1: 2: 3: 4: 5: 阅读全文

posted @ 2020-12-05 11:42 风zk 阅读(55) 评论(0) 推荐(0) 编辑

06*:队列结构的顺序与链式存储实现(1:队列、 2: 循环队列顺序队列 、3:链式队列)

摘要: 问题 目录 1:队列 2:循环队列顺序队列 3:链式队列 预备 正文 一:队列 1:队列: 队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队 阅读全文

posted @ 2020-12-05 11:41 风zk 阅读(778) 评论(0) 推荐(0) 编辑

05*:栈结构的顺序以及链式存储实现(1:栈 2:顺序栈 3:链式栈 4:递归 )

摘要: 问题 目录 1:栈 2:顺序栈 3:链式栈 4:递归 预备 正文 一:栈 1:定义 栈是一种特殊的线性结构,先进后出,只能在一段进行操作,我们把允许插入和删除的一端称为栈顶,另一端称为栈底。 不含任何数据元素的栈称为空栈。 栈的插入操作叫做进栈,也叫做压栈、入栈 栈的删除操作,叫做出栈,也叫做弹栈。 阅读全文

posted @ 2020-12-05 11:40 风zk 阅读(527) 评论(0) 推荐(0) 编辑

04:线性表算法题练习讲解

摘要: 问题 目录 预备 正文 1 注意 1 引用 1: 2: 3: 4: 5: 阅读全文

posted @ 2020-12-05 11:39 风zk 阅读(86) 评论(0) 推荐(0) 编辑

03*:双向链表与双向循环链表的实现:(前驱、数据域、后继)(初始化、插入、删除、遍历、查找、更新、长度)

摘要: 问题 带有头结点的双向链表 带有头结点的双向循环链表 目录 1:双向链表 2:双向链表的操作 3:双向循环链表 预备 正文 一、双向链表 1、结点 单向链表相对数组来说已经有很多优点了,但是,它还有一个最大的弊端,那就是在某种程度上和深度优先遍历有通性.一条路走到黑,从不回头!这种特性在进行数据操作 阅读全文

posted @ 2020-12-05 11:38 风zk 阅读(717) 评论(0) 推荐(0) 编辑

02*:单向循环链表的创建插入删除实现(1:线性表、2:单向循环链表)

摘要: 问题 目录 预备 正文 1:线性表——链表结构与顺序存储结构优缺点对比 1:存储分配方式: • 顺序存储结构⽤⽤⼀段连续的存储单元依次存储线性表的数据元素 • 单链表采⽤链式存储结构,⽤⼀组任意的存储单元存放线性表的元素 2:时间性能: • 查找 • 顺序存储 O(1) • 单链表O(n) • 插⼊ 阅读全文

posted @ 2020-12-05 11:36 风zk 阅读(267) 评论(0) 推荐(0) 编辑

16*:Flutter之dio封装

摘要: 问题 目录 预备 正文 1:封装网络请求的几个好处:1、便于统一配置请求参数,如header,公共参数,加密规则等2、方便调试,日志打印3、优化代码性能,避免到处滥new对象,构建全局单例4、简化请求步骤,只暴露需要的响应数据,而对错误的响应统一回调5、对接口数据的基类封装,简化解析流程 2:调用 阅读全文

posted @ 2020-12-05 11:34 风zk 阅读(1309) 评论(0) 推荐(0) 编辑

15*:Flutter之事件队列、微任务队列、多线程(timer、flutter、then、scheduleMicrotask、Isolate.spawn、compute)

摘要: 问题 1:microtask queue 的优先级高于 event queue ,所以如果 microtask queue有太多的微任务, 那么就可能会霸占住当前的event loop。 2:then优先级高于Flutter 3: isolate高于微任务 目录 预备 我们所熟悉的前端开发框架大都是 阅读全文

posted @ 2020-12-05 11:33 风zk 阅读(4223) 评论(0) 推荐(0) 编辑

14*:Flutter之手势GestureDetector

摘要: 问题 目录 预备 正文 Flutter中除了少部分组件,如Button相关的组件可以直接通过onPressed实现点击事件。其余组件想实现点击、长按等事件,都需要借助GestureDetector([dɪˈtektə(r)]:探测器; 检测器; 侦察器)来实现手势监听 1:常用的几个手势 下面介绍比 阅读全文

posted @ 2020-12-05 11:32 风zk 阅读(439) 评论(0) 推荐(0) 编辑

13*:Flutter之路由跳转

摘要: 问题 目录 预备 正文 1:介绍 在Flutter中页面跳转被称之为‘路由’。是通过Navigator 组件管理路由导航,其提供了管理堆栈的方法:Navigator.push(跳转) 和 Navigator.pop(返回)。Flutter配置路由的方式有两种:1、基本路由(静态路由) 2、命名路由( 阅读全文

posted @ 2020-12-05 11:31 风zk 阅读(452) 评论(0) 推荐(0) 编辑

12*:Flutter之json、list、map转换

摘要: 问题 目录 预备 正文 Flutter Json转List、Map非常简单,我们可以通过dart:convert中内置的JSON解码器json.decode() 来实现 //1:Json转List //一个JSON格式的字符串 String jsonStr = '[{"name":"张三"},{"n 阅读全文

posted @ 2020-12-05 11:30 风zk 阅读(2374) 评论(0) 推荐(0) 编辑

11*:Flutter之Button 按钮

摘要: 问题 目录 预备 正文 一:介绍 在 Flutter 里有很多的 Button,包括了:MaterialButton、RaisedButton、FloatingActionButton、FlatButton、IconButton、ButtonBar、DropdownButton 等。 一般常用的 B 阅读全文

posted @ 2020-12-05 11:29 风zk 阅读(320) 评论(0) 推荐(0) 编辑

导航