自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

阿周的博客

学习笔记总结, 仅供参考

  • 博客(27)
  • 收藏
  • 关注

原创 C++算法笔记系列——多项式的加法和乘法

一、多项式的加法算法思路:开一个double 型数组,数组下标表示多项式的指数,在输入时对数组值进行加减算法代码:#include <cstdio>const int maxn = 1010;double p[maxn] = {0};int main(){ int k,n,count=0; double a; scanf("%d",&k); fo...

2019-10-31 15:20:45 877

原创 二叉搜索树的操作集合

#include <stdio.h>#include <stdlib.h>typedef int ElementType;typedef struct TNode *Position;typedef Position BinTree;struct TNode{ ElementType Data; BinTree Left; BinTre...

2019-10-17 15:49:18 200

原创 创建一棵完全二叉搜索树

题目大意:给出一组不超过1000个的序列,生成一棵完全二叉搜索树并层序输出算法思路: 1、由于是创建一棵完全二叉树,结点从上至下从左至右与数组下标相同,于是建树采用数组形式 2、对给出的一组无序序列从小到大排序,得到arr[ ] 3、根据二叉搜索树的性质,某一结点的左子树都小于该结点,右子树都大于该结点,根据完全二叉树的性质,给定一个固定大小的结...

2019-10-16 18:25:07 1100

原创 AVL平衡树的创建

一、创建一个结点struct node{ int v,height; //v结点权值 height当前子树高度 node *lchild,*rchild; //左右孩子结点地址}*root;node* newNode(int v){ node* Node = new node; //申请一个node型变量的地址空间 Node->v =...

2019-10-16 16:58:15 120

原创 二叉树的创建和遍历——指针链表方式

结构体定义:struct node{ int data; //数据内容 node* lchild; //左孩子指针 node* rchild; //右孩子指针};二叉树的创建://通过后序序列和中序序列创建二叉树//当前二叉树的后序序列区间为[postL, postR],中序序列为[inL, inR]node* create...

2019-10-10 19:55:08 244

原创 二叉树的创建和遍历——静态链表方式

二叉树结构体定义:const int maxn = 10;const int Null = -1;struct TreeNode{ int data; //结点内容 int left,right; //结点左指针和右指针}T[maxn];数据的输入格式:8 //总节点数1 - //左孩子的下标位置 右孩子...

2019-10-06 22:12:15 837

原创 C++算法笔记系列——平方探测法(Quadratic probing)解决hash冲突

#include <cstdio>#include <cmath>const int maxn = 10010;bool hashTable[maxn] = {0}; //hash表int main(){ int TSize,n,a; //这里的TSize作为hash表长,应该为素数 scanf("%d%d",&TSize,&n...

2019-09-25 17:40:04 2335

原创 C++算法笔记系列——进制转换

#include <cstdio>int arr[100010];int main(){ int n,radix; scanf("%d%d",&n,&radix); int len = 0; //将 n 转换为 radix 进制数 do{ arr[len++] = n % radix; n /= radix; }while(n != 0)...

2019-09-25 17:01:51 254

原创 C++算法笔记系列——判断是否是素数

一、判断某数是否为素数bool isPrime(int n){ int i; for(i=2; i<=sqrt(n); i++){ if(n % i == 0) break; } if(i>sqrt(n) && n!=1) return true; return false;}二、生成素数表const int maxn = 1000001...

2019-09-25 16:40:51 366

原创 JS学习笔记—手写封装call、apply 、 bind 函数和new的实现

一、实现call函数Function.prototype.myCall = function(context) { if (typeof this !== 'function') { throw new TypeError('Error') } //当传入的context为基础类型时,直接挂载fn会报错 if(typeof context !== 'object') ...

2019-04-25 11:06:14 859

原创 JS学习笔记—JS 的 Event Loop

执行栈和Event Loop行栈是一个存储函数调用的栈结构,遵循先进后出的原则。当开始执行 JS 代码时,首先会执行一个main函数,然后执行我们的代码。根据先进后出的原则,后执行的函数会先弹出栈。当遇到异步的代码时,会被挂起并在需要执行的时候加入到 Task(有多种 Task) 队列中。一旦执行栈为空,Event Loop 就会从 Task 队列中拿出需要执行的代码并放入执行栈中执行...

2019-04-25 10:41:13 125

原创 JS学习笔记—手写一个简易的Promise

<script> const PENDING = 'pending'; const RESOLVED = 'resolved'; const REJECTED = 'rejected'; function MyPromise(fn){ const that = this; that.state = PENDING; //...

2019-04-22 15:02:59 481

原创 JS学习笔记—通过 Proxy 来实现一个数据响应式

Proxy 是 ES6 中新增的功能,它可以用来自定义对象中的操作。let onWatch = (obj, setBind, getLogger) => { let handler = { get(target, property, receiver) { getLogger(target, property) return Reflect.get(...

2019-04-19 10:40:44 706

原创 JS学习笔记—var、let 及 const 区别

函数提升优先于变量提升,函数提升会把整个函数挪到作用域顶部,变量提升只会把声明挪到作用域顶部 var存在提升,我们能在声明之前使用。let、const因为暂时性死区的原因,不能在声明前使用 var在全局作用域下声明变量会导致变量挂载在window上,其他两者不会 let和const作用基本一致,但是后者声明的变量不能再次赋值var a = 10var aconsole...

2019-04-19 09:51:52 113

原创 JS学习笔记—深浅拷贝

浅拷贝1、Object.assign:Object.assign只会拷贝所有的属性值到新的对象中,如果属性值是对象的话,拷贝的也是地址let a = { age: 1}let b = Object.assign({}, a)a.age = 2console.log(b.age) // 12、展开运算符...let a = { age: 1}let b =...

2019-04-18 16:18:07 122

原创 JS学习笔记—类型转换

在 JS 中类型转换只有三种情况,分别是:转换为布尔值 转换为数字 转换为字符串转Boolean在条件判断时,除了undefined,null,false,NaN,'',0,-0,其他所有值都转为true,包括所有对象。对象转原始类型对象在转换类型的时候,会调用内置的[[ToPrimitive]]函数,对于该函数来说,算法逻辑一般来说如下:如果已经是原...

2019-04-18 13:39:28 118

原创 JS学习笔记—使用instanceof判断原始类型

问题提出:var str = 'hello world'str instanceof String // falsevar str1 = new String('hello world')str1 instanceof String // true问题解决:class PrimitiveString { static [Symbol.hasInstance](x) {...

2019-04-18 12:58:55 796

原创 关于在vue项目中,刷新页面时websocket断开连接的解决办法

Vue作为一个单页面应用, webSocket可以说是用起来非常爽了. 因为webSocket在同一个html文件中,是可以保持连接的. 但是当使用f5或者点击刷新页面以后, websocket连接就会强制关闭. 关于这个问题我研究了很久,最后找到两种解决办法;先说下我踩过的坑,起初我设想,在登录并创建websocket连接成功后,设置一个字段保存在localStorage或者cookie中: w...

2018-05-16 22:12:17 37258 10

原创 基于新浪云手动构建node+nginx应用之(二)centos系统搭建nginx

Node搞定以后配置nginx, 安装nginx很简单第一步,先安装nginx存储库 =&gt;&gt; yum install epel-release第二步,安装nginx  =&gt; yum install nginx ,对提示回答yes依旧,出现版本号说明安装成功了 nginx安装成功然而nginx最难得地方不是安装, 是我不明白要怎么用.....在捣鼓了N久...

2018-04-23 23:21:03 441

原创 基于新浪云手动构建node+nginx应用之(一)centos系统搭建node环境

在长达连续10个小时的研究和踩坑之后,作为一个服务器白痴的我, 终于在新浪云上搭建出了一套node+nginx的服务环境, 选择新浪云的主要原因是它免费, 虽然扣云豆但是注册就送不少了,玩一下还是够够的.但是玩起来坑也是不少啊,一搜索博客全是阿里云的搭建, 虽然集成环境搭建起来大同小异, 但是作为一只入行只有半年的前端狗, 一条命令也足以让我踩坑几个小时了. 废话不多说了, 接下来就做个搭建过...

2018-04-23 23:19:58 583

原创 关于vue-cli取消dev-server.js后, proxyTable代理配置问题解决

新版vue-cli的 build 目录中取消 dev-server.js 和 dev-client.js 这两个文件,也没有默认依赖 http-proxy-middleware 插件, 因此关于proxyTable跨域代理的配置, 研究了很久终于找到解决方案,那就是在config/index.js中进行数据配置. 代码如下: //跨域代理插件 proxyTable: { '

2018-01-11 10:59:36 4437

原创 关于vue-cli取消dev-server.js后, axios请求本地json文件的配置问题解决

在还没有连接后端时, 前端攻城狮一般需要创建一个本地json,用来虚拟请求数据,完善一些前端的设计和功能实现. 由于vue-cli更新后, 取消了dev-server.js和dev-client.js, 改用webpack.dev.conf.js代替,因此关于express的一些配置改为如下解决方案:在build/webpack.dev.conf.js文件中, 配置express环境://

2018-01-11 10:31:40 1337 1

原创 浏览器与服务器的交互原理解析(五)-------使用axios进行异步请求

axios也是基于XMLHttpRequest对象的一种请求数据的方式, 在尤大大的官方推荐下,被越来越多的人所熟知, 我也小小的去用了一下, 感觉上玩起来和vue-resource相差无几, 可能是还有什么深不可测的优势是我这种小白无法理解的. 总之, 大神说用什么好, 那我去用就好了, 反正都是工具嘛, 用着顺手最重要.一. axios的几大特征从浏览器中创建 XMLHttpRequest从 ...

2018-01-11 09:36:11 5197

原创 浏览器与服务器的交互原理解析(四)-------使用vue-resource进行异步请求

vue相对于jquery和原生js来说, 通过产生虚拟DOM, 将前端攻城狮从原来繁琐的DOM操作中解放出来, 相应的, ajax基于对DOM节点的操作,进行数据请求的方式在vue中就被弃用了. 转而使用了vue-resource插件, 该插件可以通过XMLHttpRequest或JSONP发起请求并处理响应。也就是说,$.ajax能做的事情,vue-resource插件一样也能做到,而且vue-

2018-01-10 16:47:18 1505

原创 浏览器与服务器的交互原理解析(三)-------使用Ajax进行异步请求

关于浏览器向服务器发起异步请求的方式,目前暂时我只接触了三种:jQuery中的Ajax, vue中的vue-resource, 和axios. 目前看来使用最多的还是Ajax, vue官方也宣布vue-resource更新到2.0就不更新了,推荐使用axios进行数据请求. 下面就做个3种请求方式的知识梳理吧 .一. 使用Ajax请求数据1.  原理: 使用Ajax实现异步请求的原

2018-01-10 14:43:27 3339

原创 浏览器与服务器的交互原理解析(二)

一. 关于TCP/IP 协议的三次握手与四次挥手1. 第一次握手:客户端向服务端发送连接请求报文段,然后,客户端进入等待状态,等待服务器的连接确认;2. 第二次握手:服务器收到客户端的报文段,在对报文段确认后, 服务器端将服务端数据连接的配置信息放到一个报文段中,一并发送给客户端,此时服务器进入等待状态;3. 第三次握手:客户端收到服务器返回的报文段后, 向服务器发送连接报

2018-01-10 11:37:27 2360

原创 浏览器与服务器的交互原理解析(一)

一. 浏览器请求数据的原理1.当我们利用浏览器访问网页时,其实是有真实的物理文件传输的,浏览器会先将网页上的内容缓存到本地文件夹中,然后再渲染出来,呈献给用户查看;2.平时我们在上网是会感觉到第二次访问网页会比第一次访问网页要快,就是因为第一次访问时已经将这个网页上的信息缓存到了本地;3.缓存文件夹中,除了缓存图片外,还缓存了一些.js, .css, .html文件,网页越复杂, 那么

2018-01-10 09:21:26 5934

空空如也

空空如也

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

TA关注的人

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