🌓

装饰者模式与IO包

装饰者模式装饰者模式是继承的一种替代方案。它以对客户端透明的状态动态的为对象赋予不同的职责,而不用进行大量子类的扩写。 模式结构它的类图如下: Component(抽象构件): 通常作为接口被实现,用于规范被装饰角色ConcreteComponent(具体构件): 作为揽收职责的对象类,实现了抽象构件接口Decorator(装饰职责超类): 用于规范具体装...

阅读全文

二叉树遍历的应用

::: hljs-center 二叉树遍历的应用 ::: 利用二叉树遍历的框架,思想可以做很多二叉树应用方面的问题 输出所有叶子节点将二叉树中所有没有儿子的节点输出,使用先序遍历来做;在先序遍历算法中,增加检测节点的 “左右儿子是否为空”程序的实现如下 12345678void PreOrderTraversal(BinTree BT){ if...

阅读全文

二叉树的遍历

::: hljs-center 二叉树的遍历 ::: 以二叉树的链式存储为例,二叉树的遍历方式有以下几种 递归实现 二叉树的定义与存储void PreOrderTraversal(T) 先序 根,左子树,右子树; void InOrderTraversal(T) 中序 左子树,根,右子树; void PostOrderTraversal(T) 后...

阅读全文

二叉树的定义与存储

::: hljs-center 二叉树的存储与遍历 ::: 二叉树的定义二叉树T: 一个有穷的节点集合这个集合可以为空;若不为空,则它是由根节点和称为其左子树Tl和右子树Tr的两个不相交的二叉树组成。从某种角度理解,二叉树可以当做一颗度为2的树,但他有左右之分 二叉树的五种基本形态 a : 空二叉树b : 只有一个根节点c d : 左右子树分别为空e ...

阅读全文

树与二叉树

::: hljs-center 树与二叉树 :::<树,二叉树结构> 笔记目录 0. 树与二叉树1. 二叉树的定义与存储2.二叉树的遍历 顺序查找查找指的是根据某个给定关键词K,从集合R中找出关键字与K相同的记录,查找分为两类 静态查找: 集合中记录是固定的,没有插入删除操作,只有查找动态查找: 集合中记录是动态变化的,除查找外还可能发生...

阅读全文

队列与顺环队列

队列也是一种受操作约束的特殊线性表;进行插入和删除操作的时候 只能在一端插入,而在另一端删除它的插入和删除操作分别发生在表的两头,而一般化的线性表可以在任何位置进行插入和删除数据的插入我们称之为 入队(AddQ) ;删除称为 出队(DeleteQ)这种表又被称为 先入先出表抽象数据类型描述为:队列的存储实现一样有两种方式,顺序存储与链式存储;顺序存储的实现如...

阅读全文

堆栈与表达式求值

什么是堆栈?堆栈是一种线性结构,也是一种特殊的线性表;堆栈在计算机学科中有着广泛的应用,如函数调用,递归,表达式求值等(考虑一下游戏中ui界面的调用,打开商城选择商品会蹦出来一个“结算”的子界面,此时玩家按下esc,该关掉哪个呢?肯定是遵守先进后出的原则先关掉结算界面吧,这就是堆栈的应用了)思考一下计算机表达式求值的问题,如对于以下这个式子 5+6...

阅读全文

线性表的实现与多项式表示

<线性结构>笔记目录 线性表的实现与多项式表示 http://www.zsenhe.com/article/83堆栈与表达式求值问题 http://www.zsenhe.com/article/84队列,顺环队列 http://www.zsenhe.com/article/85 引子——多项式表示线性结构是数据结构里最基础,最简单的一种类型;...

阅读全文

字节青训营2.1单元测试

::: hljs-center :::::: hljs-center 单元测试 ::: 在学习阶段练手的项目通常会直接丢到环境上去跑,有了BUG就现修;在企业开发时,一个小小的BUG可能会导致大量的损失,因此在程序上线前对程序进行测试时是必不可少的。 测试类型分为 回归测试,集成测试,单元测试 回归测试是指在发生修改之后重新测试先前的测试以保证修改的正确...

阅读全文

字节青训营2Go工程进阶与依赖管理

::: hljs-center ::: ::: hljs-center Go工程进阶与依赖管理 ::: 并发编程 并发与并行的区别在谈及这两个概念之前,要先明白他们解决的是一个什么共同的问题。我们知道在单线程环境下,任务是堵塞的,当一个任务在运行的时候,另外一个任务只能等待它完成才能继续。如果说程序本身是高速公路的收费站,那么任务就是要通行的车辆,在上一辆...

阅读全文