自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 收藏
  • 关注

原创 GraphQL入门

一 概述GraphQL是由Facebook创造的用于描述复杂数据模型的一种查询语言。该查询语言是指一种前后端数据查询方式的规范。二 RESTful存在的问题RESTful是一种请求数据资源的一种api规范:#请求GET http://localhost/user/100#响应:{id : 100,name : "小三",age : 20,address : "北京市",}RESTful请求出现这样的结果是正确的,如果,对于请求我只是想得到id和name属性,其他的属性是

2020-07-31 21:42:45 127

原创 RocketMQ入门

一 概述Apache RocketMQ是一个采用java语言开发的分布式的消息系统。二 RocketMQ核心概念介绍 Producer:消息生产者,负责产生消息,一般由业务系统负责产生消息。Producer group:一类producer的集合,这类producer通常发送一类消息,并发送逻辑一致。Consumer:消费者,负责消费消息,一般是由后台系统负责异步消费。Push consumer:服务端向消费者推送消息。Pull consumer:消费者向服务定时...

2020-07-31 21:18:51 113

原创 WebSocket入门

一 概述WebSocket是HTML5一种新的协议,它用来实现浏览器与服务器之间全双工通信(full-duplex)。一开始的握手需要借助于HTTP请求完成。WebSocket是真正实现了全双工通信的互联网技术。它是一种在单个TCP连接上进行全双工通讯协议。二 全双工与单工的区别全双工(Full Duplex)是通讯传输的一个术语。通信允许数据在两个方向上同时传输,它在能力上先当于两个单工通信方式的结合。全双工指可以同时(瞬间)进行信号的双向传输(A->B且B->A),指两个信息的发

2020-07-31 21:03:34 159

原创 项目架构的演进

一 概述随着软件行业的发展,软件架构的发展经过了从单体架构->垂直架构->SOA架构->微服务架构的演进。二 单体架构单体架构是Web应用程序发展早期的一种架构,这种架构的特点就是所有的功能模块都打成一个war包,并放在同一个web容器中,而且所有的功能模块使用同一个数据库。 单体架构的特点:该架构下会将所有的功能集成在一个项目工程中。 所有的功能打成一个war包部署到服务器。 通过部署应用集群和数据库集群来提高系统的性能。单体架构的...

2020-07-31 15:45:44 243

原创 区块链,联盟链之Hyperledger Fabric

一 概述Hyperledger Fabric是一个基于模块化架构的分布式账本解决方案平台,是IBM带头发起的一个开源的联盟链项目,后来成为了Hyperledger基金会的一个开源项目,Hyperledger基金会是由IBM,Intel,思科等大公司组成。除了Fabric之外,该基金会还孵化了很多区块链项目,但是Fabric是最出名的一个项目,所以一般说的超级账本(Hyperledger)基本上是指Fabric。二 Hyperledger开源项目概览 ...

2020-07-30 18:46:40 1272

原创 解决umi 不是内部或外部命令,也不是可运行程序问题

一 UmiJS安装安装Node.js,使用node -v命令检测安装结果 安装yarn,其中tyarn使用的是npm.tao.bao.org的源,速度比较快,其实可以将yarn看作为优化后的npmnpm i yarn tyarn -g #-g 是指全局安装tyarn -v 测试安装结果,正常输出版本信息即为安装成功安装umityarn global add umi //安装umiumi //安装测试二 解决umi 不是内部或外部命令,也不是可运行程序问题使用命令查看ya

2020-07-28 17:34:24 9642

转载 初识ECMAScript6

一 概述ECMAScript6是目前行业中的主要标准,因为现代浏览器对ES6的支持相当迅速,尤其是Chrome和Firefox浏览器,已经支持ES6中绝大部分的特性。二 let,const和block作用域var i = 2;{ let i = 3; console.log(i);//输出3}console.log(i);//输出2如代码实例所示,let允许创建块级作用域,ES6推荐在函数中使用let定义变量,而不是使用var;除此之外,同样在块级作用域有效的另一个

2020-07-27 19:17:21 135

原创 栈的存储结构之顺序存储即顺序栈

一 概述栈是一种操作受限的线性表,而采用顺序存储的栈是顺序栈,它是利用一组地址连续的存储单元存放自栈底到栈顶的数据元素,同时携带一个指示当前栈顶元素位置的指针(top),顺序栈与线性表的知识框架如图所示: ...

2020-07-26 15:06:25 1266

原创 数据结构之栈的基本概念

一 栈的定义栈是允许在一端进行插入或者删除操作的线性表。它是一种线性表,但是限定这种线性表只能在某一端进行插入和删除操作。栈顶(Top):线性表允许进行插入删除的那一端。栈底(Botton):固定的,不允许进行插入和删除的另一端。空栈:不含任何元素的空表。二 栈结构的解析假设某个栈S={a1,a2,a3,a4,a5},如图,a1为栈底元素,a5为栈顶元素。由于栈只能从栈顶进行插入和删除操作,进栈次序依次为a1,a2,a3,a4,a5。而出栈的次序为a5,a4,a3,a2,a1。由此可

2020-07-25 17:17:22 769

原创 递归函数删除不带头结点的单链表中特定值的结点

一 概述DelElem(L,a)的功能是删除以L为首结点指针的单链表中所有值为a的结点。同理,DelElem(L->next,a)则删除以L->next为首结点指针的单链表中所有值等于x的结点。因此Delete即为删除单链表中特定值结点的递归函数。二 算法的实现单链表以及递归算法的实现步骤:***********操作选项************** 1.初始化单链表! 2.使用前插法将数插入单链表中! 3.使用后插法将数插入单链表中!...

2020-07-17 22:03:59 658

原创 数据结构之顺序表和链表的比较

一 概述线性表分为顺序存储和链式存储两种方式。二 存取(读写)方式顺序表可以分为顺序存取,也可以随机存取,链表只能从表头顺序存取元素。例如在第i个位置上执行存或取的操作,顺序表仅需一次访问,而链表则需从表头开始依次访问i次。三 逻辑结构与物理结构采用顺序存储时,逻辑上相邻的元素,对应的物理存储位置也相邻。而采用链式存储时,逻辑上相邻的元素,物理存储位置则不一定相邻,对应的逻辑关系时通过指针链接来表示的。四 查找,插入和删除操作对于按值查找,顺序表无序时,两者的时间复杂度均为O(n

2020-07-08 23:06:50 901

原创 线性表的链式存储之循环链表

一 概述循环链表不同于单链表的是在循环链表中最后一个结点的指针不为NULL,而是指向头结点,从而整个链表形成一个环。二 循环链表之循环单链表在循环单链表中,表尾结点*r的next域指向L,故表中没有指针域为NULL的结点,因此,循环单链表的判空条件不是头结点的指针是否为空,而是它是否等于头结点。循环单链表的插入,删除算法与单链表的类似,不同的是当操作的结点在表尾部的时候,则执行不同的操作,以让单链表继续保持循环的性质。此外,由于循环单链表是一个“环”,因此在表中任何一个位置上的插入和删除

2020-07-06 21:41:41 259

原创 双链表的实现与基本操作

一 概述基本操作包括双链表的增,删,查,改以及单链表数据的打印。1.初始化双链表! 2.使用前插法将数插入双链表中! 3.使用后插法将数插入双链表中! 4.在双链表指定位置增加一个数! 5.从双链表中删除指定位置的数! 6.从双链表中删除指定值的数! 7.从双链表中找出某一个指定的数! 8.将双链表中的结点数据替换! 9.输出目前的双链表中的每个数据及链表长度! 0:退出!二 代码实例#include<stdio.h> #define OK 1;#defi

2020-07-06 16:56:46 266

原创 线性表链式存储之双链表

一 概述在单链表中只有一个指向后继结点的指针,使得单链表只能从头结点依次顺序地向后遍历。要访问某个结点的前驱结点(插入,删除操作时),只能从头开始遍历,访问后继结点的时间复杂度为O(1),访问前驱结点的时间复杂度为O(n)。双向链表的结点中存在两个指针prior和next,分别指向其前驱结点和后继结点。二 双链表中结点类型代码实例typedef struct DNode{ //定义双链表结点的结构体类型 ElemType data;

2020-07-06 15:50:20 476

原创 单链表的实现和基本操作

一 概述基本操作包括单链表的增,删,查,改以及单链表数据的打印。1.初始化单链表! 2.使用前插法将数插入单链表中! 3.使用后插法将数插入单链表中! 4.在单链表指定位置增加一个数! 5.从单链表中删除指定位置的数! 6.从单链表中找出某一个指定的数! 7.将单链表中的结点数据替换! 8.输出目前的单链表中的每个数据! 0:退出!二 代码实例#include<stdio.h> #define OK 1;#define ERROR 0;bool exis

2020-07-05 18:01:26 1027

原创 线性表的链式表示以及单链表

一 概述线性表的顺序表示即顺序表可以随时存取表中的任一个元素,但是删除和插入操作需要移动大量元素。链式存储线性表时,不需要使用地址连续的存储单元,即不要求逻辑上相邻的元素在物理位置上也相邻,它通过"链"建立起数据元素之间的逻辑关系,因此插入和删除操作不需要移动元素,而只需要修改指针,但也会失去顺序表可随机存取的优点。二 单链表线性表的链式存储又称作单链表,它是通过一组任意的存储单元来存储线性表中的数据元素。单链表中的每个结点,除了存放元素自身的信息外,还需要存放一个指向其后继的指针。data

2020-07-02 22:26:33 174

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除