摘要:
1 栈的概念和操作 1.1 栈的基本特征 栈限定只在表尾进行插入和删除的操作,也就是传统意义上的”先进后出“,所以栈也是线性表的一种 1.2 栈的基本操作 插入操作 即入栈 删除操作 即出栈 2 栈的基本实现 栈属于线性表中的一种,那么就有顺序表和链表两种实现方式,但是不管哪种,都需要下面几个方法 阅读全文
摘要:
什么是线性表? 零个或者多个数据元素的有限序列。线性表中的元素在位置上是有序的,前后两个元素存在一一对应关系 线性表的存储结构 顺序表 用一块地址连续的存储空间一次存储线性表中的数据元素,在顺序表中,逻辑上相邻的元素在物理地址上也是相邻的 顺序表之数组 数组是最基础的也是存取速度最快的一种集合类型, 阅读全文
摘要:
随着输入规模n的增大,T(n)增长最慢的算法是最优算法 计算方法 用常数1去带运行时间中的所有假发常数 在修改后的运行次数函数中,只保留最高阶项 如果最高阶存在且不是1,则去除与这个项相乘的常数 最后得到的结果就是大O阶 阅读全文
摘要:
什么是数据结构? 程序设计 = 数据结构 + 算法 数据结构就是关系,数据元素相互之间存在的一种或多种特定关系的集合 数据结构分为 逻辑结构和物理结构 逻辑结构 :是指数据对象中数据元素之间的相互关系 物理结构:是指数据的逻辑结构在计算机中的存储形式 四种逻辑结构 集合结构: 集合结构中的数据元素除 阅读全文
摘要:
线性表是由n(n>=0)个相同的数据元素构成的有限序列 线性表分为 顺序表:在内存中用一块地址连续的空间依次存放线性表的元素 最常见的就是数组 顺序表的存、读数据不管在哪个位置,时间复杂度都是O(1),而在插入和删除元素的时候,时间复杂度都是O(n) 所以线性表比较适合元素个数稳定,高读取、低增删的 阅读全文
摘要:
观察者模式应该算是比较常见的设计模式了,常用的场景有A类发生修改、或者某种操作,从而通知观察者B类进行某种操作 假如需求是 老鼠一开始跑,猫就开始抓 代码如下 /// <summary> /// 老鼠类 /// </summary> public class Mouse { Cat cat = ne 阅读全文
摘要:
最近项目中采用了微服务的软件体系,导致服务之间数据流通会产生一些问题,有部分需求需要服务之间互相调用接口来完成数据的流通。 首先第一时间是想到了RPC来做数据流通,但是一个人感觉短时间内搞不定 然后退而求其次采用了HttpClient来进行接口请求,可是哪怕封装了相关的请求代码,还是会有很多的冗余代 阅读全文
摘要:
{ "ReRoutes": [ { "DownstreamPathTemplate": "/DemoService/{url}", // 下游游请求模板 "UpstreamPathTemplate": "/{url}", // 上游请求模板 "UpstreamHttpMethod": [ "Get" 阅读全文
摘要:
1、委托是什么? 委托是一个类,继承自System.MulticastDelegate,内置了构造函数、实例化方法等 2、委托的作用。 解耦,减少重复代码 异步编程 3、什么是事件? 带有event关键字的委托实例(用来把一堆可变的动作/行为封装出去,交给第三方来指定) 阅读全文
摘要:
1、重写 派生类重写基类的方法或者属性,使用关键字(override), 关键: 父类的被重写方法必须使用 virtual、override,abstract 关键字进行修饰 重写的方法参数必须与被重写方法一样 2、重载 不同的函数使用相同的函数名,参数不同。 3、抽象类和接口的区别 相同点: 都不 阅读全文