队列 聊起队列,你一定会联想到一个与队列相似的数据结构:栈. 为了更好的理解什么是队列,我们将它和栈来比较一下: 队列的特点是:先进先出,如下图,1先进,1就先出. 图1:队列的图解 栈的特点是:先进后出,如下图,1先进,1却最后出. 图2:栈的图解 为了让你更好的区分与理解队列与栈,你只记住这个口诀:吃多了拉就是队列,吃多了吐就是栈. 哈哈哈,千万不要告诉别人这是我告诉你的.... 数组实现队列,难在哪? 数组实现队列,乍一看,很贴合的一种方式去实现队列.仔细推敲一下你会发现并不简单. 为了更…
java实现二叉树的Node节点定义手撕8种遍历(一遍过) 用java的思想和程序从最基本的怎么将一个int型的数组变成Node树状结构说起,再到递归前序遍历,递归中序遍历,递归后序遍历,非递归前序遍历,非递归前序遍历,非递归前序遍历,到最后的广度优先遍历和深度优先遍历 1.Node节点的Java实…
SynchronousQueue SynchronousQueue是无界的,是一种无缓冲的等待队列,但是由于该Queue本身的特性,在某次添加元素后必须等待其他线程取走后才能继续添加:可以认为SynchronousQueue是一个缓存值为1的阻塞队列,但是 isEmpty()方法永远返回是true,remainingCapacity() 方法永远返回是0,remove()和removeAll() 方法永远返回是false,iterator()方法永远返回空,peek()方法永远返回null. 声…
前言 这是一篇包含极少数学推导的NN入门文章 大概从今年4月份起就想着学一学NN,但是无奈平时时间不多,而且空闲时间都拿去做比赛或是看动漫去了,所以一拖再拖,直到这8月份才正式开始NN的学习. 这篇文章主要参考了<深度学习入门:基于Python的理论与实现>一书,感觉这本书很不错,偏向实践,蛮适合入门. 话不多说,下面开始我们的NN入门(手撕NN)之旅 基础数学知识 这里只对张量进行简单介绍,关于矩阵运算之类的,就靠你们自己另外学啦. 标量(0D张量) 仅包含一个数字的张量叫作标量(scala…
NN入门,手把手教你用Numpy手撕NN(3) 这是一篇包含极少数学的CNN入门文章 上篇文章中简单介绍了NN的反向传播,并利用反向传播实现了一个简单的NN,在这篇文章中将介绍一下CNN. CNN CV(计算机视觉)作为AI的一大研究方向,越来越多的人选择了这个方向,其中使用的深度学习的方法基本以卷积神经网络(CNN)为基础.因此,这篇文章将介绍CNN的实现. CNN与我们之前介绍的NN的相比,出现了卷积层(Convolution层)和池化层(Pooling层).其网络架构大致如下图所示 卷积层…
前言 目录 01 文法和语言.词法分析复习 02 自顶向下.自底向上的LR分析复习 03 语法制导翻译和中间代码生成复习 04 符号表.运行时存储组织和代码优化复习 05 用C++手撕PL/0 在之前的编译原理实验课是要求对现有的PL/0编译程序代码进行修改以添加一些功能,于是我拿到C++和C语言版本的实现来看.但是C++的要安装C++ Builder,C语言的实现有种上古世纪的味道,实在是没有欲望去改他的代码.思来想去,还是决定自己拿出最多一周的时间自己重新用C++写一个PL/0程序,把实验当…
//简单的队列 #include<stdio.h> #include<stdlib.h> #define datatype int #define N 10 //定义队列结构体 struct queue{ int front;//队头 int endline;//队尾 datatype data[N];//数据 }; typedef struct queue Queue; Queue myQueue = { , , { } }; //初始化队列 void initQueue(Que…
在Java中,作为所有数据结构中存储和获取速度最快的一种,数组凭借其这种简单易用的优势在各个方面都能大显神威.但是数组也有自身的局限性.数组的长度必须是固定的一旦定义之后就无法动态的更改,这就会造成这样的问题,如果数组已满,就无法继续添加数据(当然你可以定义一个"足够大的数组",但问题是多大才是足够大呢?太小不够,太大浪费内存空间).如果删除一个数据,它的内存空间空着没有被使用.另外数组只能存储同一类型的数据,如果把它设置成Object类型的话,是可以存不同类型的数据了,但是设想这样一…
前言 诞生及优势 MQTT由Andy Stanford-Clark(IBM)和Arlen Nipper(Eurotech,现为Cirrus Link)于1999年开发,用于监测穿越沙漠的石油管道.目标是拥有一个带宽有效且使用很少电池电量的协议,因为这些设备是通过卫星链路连接的,当时这种设备非常昂贵. 与HTTP及其请求/响应范例相比,该协议使用发布/订阅体系结构.发布/订阅是事件驱动的,可以将消息推送到客户端.中央通信点是MQTT代理,它负责调度发送者和合法接收者之间的所有消息.向代理发布消息的…
手撕RPC 使用Netty+Zookeeper+Spring实现简易的RPC框架.阅读本文需要有一些Netty使用基础. 服务信息在网络传输,需要讲服务类进行序列化,服务端使用Spring作为容器.服务端发布服务,将接口的全路径当做节点名称,服务的ip+端口作为节点值,存储到Zookeeper中.客户端调用的时候,去Zookeeper查询,获得提供该接口的服务器ip和端口,通过Netty进行调用. 工程引用的jar包 <dependencies><dependency><gr…