- 博客(15)
- 资源 (1)
- 问答 (1)
- 收藏
- 关注
原创 堆排序
基础知识: 堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为O(nlogn),它也是不稳定排序。首先简单了解下堆结构。 堆是具有以下性质的完全二叉树:每个结点的值都大于或等于其...
2019-06-20 16:08:53 193
原创 二叉树的推导
目录推导遍历结果1、已知前序遍历和中序遍历2、已知中序遍历和后序遍历3、已知前序遍历和后序遍历,无法确定一颗唯一的二叉树参考文献推导遍历结果1、已知前序遍历和中序遍历例:前序遍历为ABCDEF,中序遍历为CBAEDF,求二叉树的后序遍历?解:已知前序遍历先打印根节点,再打印左右节点=>根节点为A;已知中序遍历先打印左节点,再打印根节点,在打印右节点=>二叉树的左...
2019-06-28 16:35:58 1522
原创 二叉树的遍历(先序、中序、后序、层序)递归与非递归实现
写了一天的代码,留个纪念吧。。。#include <iostream>#include <stack>#include <queue>using namespace std;typedef struct binaryNode{ char data; binaryNode *lchild,*rchild;} binaryNode,...
2019-06-27 20:42:54 519
原创 二叉数生成中指针引用的作用
构建如下图所示二叉树:主要疑问:在创建二叉树的函数中为什么要用到指针的引用呢?(这一点很重要)因为我想改变从主函数中传入的二叉树的根指针。孩子节点最终会变成根节点,所以也需要改变指针,故需要指针引用的方式。具体请参考代码中的注释。//// Created by 彭程明 on 2019/6/26.//#include <iostream>using names...
2019-06-26 23:07:46 455
转载 C++中*&(指针引用)和*(指针)的区别
很久之前学的C++了,复习一下,指针是一个存放地址的变量,而指针引用指的是这个变量的引用,众所周知C++中如果参数不是引用的话会调用参数对象的拷贝构造函数,所以如果有需求想改变指针所指的对象(换句话说,就是要改变指针里面存的地址),就要使用指针引用,在网上看到大佬的代码,简单明了,如下:#include <...
2019-06-26 20:56:17 217
原创 CSRF防御之token认证
一、CSRF是什么?CSRF(Cross-site request forgery),中文名称:跨站请求伪造。攻击者盗用你的身份,以你的名义发送恶意请求。CSRF能够做的事情包括:以你名义发送邮件,发消息,盗取你的账号,甚至于购买商品,虚拟货币转账…造成的问题包括:个人隐私泄露以及财产安全。二、CSRF攻击原理三、防御CSRF的策略:token认证1、token验证方法CSRF 攻击之...
2019-06-24 21:39:01 31245 1
原创 HTML5里的window.postMessage
估计很少人知道HTML5 APIS里有一个window.postMessage API。window.postMessage的功能是允许程序员跨域在两个窗口/frames间 和 主线程与web worker线程间发送数据信息。基本上,它就像是跨域的AJAX,但不是浏览器跟服务器之间交互,而是在两个客户端之间通信。让我们来看一下window.postMessage是如何工作的。除了IE6、IE7之外...
2019-06-24 12:55:40 2382
原创 reflow(重排/回流)、repaint(重绘)及其优化
浏览器拿到HTML之后的渲染过程:生成DOM树;生成CSSOM树;生成render树;执行reflow(在render树的基础上计算页面真实显示dom的位置);执行repaint(为真实显示的dom绘制不影响dom位置的样式,如设置dom的color等)。reflow:当页面发生的某些变化影响了布局,需要倒回去重新渲染,该过程称为reflow(重排/回流)。reflow几乎是无法...
2019-06-24 11:00:51 563
原创 Web Worker
一. 简述: JavaScript 语言采用的是单线程模型,也就是说,所有任务只能在一个线程上完成,一次只能做一件事。前面的任务没做完,后面的任务只能等着。随着电脑计算能力的增强,尤其是多核 CPU 的出现,单线程带来很大的不便,无法充分发挥计算机的计算能力。 &nb...
2019-06-23 11:15:03 228
原创 怎么实现一个计算一年中有多少周?
首先你得知道是不是闰年,也就是一年是365还是366。其次你得知道当年1月1号是周几。假如是周五,一年365天把1号 2号3号减去,也就是把第一个不到一周的天数减去等于362,还得知道最后一天是周几,假如是周五,需要把周一到周五减去,也就是362-5=357。正常情况 357这个数计算出来是7的倍数。357/7=51 。即为周数。获取某年某月某日是星球几 function get...
2019-06-23 09:21:02 9228 3
原创 HTML5的拖拽总结
在拖拽的世界里,元素被分为2类,一类是被拖拽元素,一类是目标元素,即想把被拖拽的元素拖到哪里。拖放是一种常见的特性,即抓取对象以后拖到另一个位置。在 HTML5 中,拖放是标准的一部分,任何元素都能够拖放。拖拽主要过程:把被拖拽的元素设置成可拖拽,即属性值draggable=true。在被拖拽的元素上添加dragstart事件,在开始拖放被拖放元素时触发。在目标元素上添加drop事件...
2019-06-22 11:16:18 312 1
原创 WebSocket的实现和应用
1. 什么是WebSocket? WebSocket是HTML5中的协议,支持持久连续,http协议不支持持久性连接(长连接,循环连接的不算)。Http1.0和HTTP1.1都不支持持久性的链接,HTTP1.1中的keep-alive,将多个http请求合并为1个,也就是不用再去重复建立TCP连接了。...
2019-06-19 21:11:29 7086 1
原创 计算机网络的寻址问题 — MAC地址,IP地址以及ARP协议
在TCP/IP模型中,ARP协议属于IP层(也称网络层);在OSI模型中,ARP协议属于链路层。arp协议,也称地址解析协议,是根据IP地址获取物理地址的一个TCP/IP协议。它可以解决同一个局域网内主机或路由器的IP地址和MAC地址的映射问题。OSI模型把网络工作分为七层,IP地址在OSI模型的第三层(网络层),MAC地址在第二层(数据链路层),彼此不直接打交道。在通过以太网发送IP数据包...
2019-06-10 22:28:45 4596
原创 JavaScript深入之:构造函数、单例模式、工厂模式、原型链模式
单例模式单例模式虽然解决了分组的作用,但是不能实现批量的生产,属于手工作业模式。工厂模式工厂模式把实现同一件事情的相同代码放到一个函数中,以后如果再想实现这个功能,不需要从新编写这些代码,只需要执行当前工长函数即可。它实现了“高内聚低耦合“,减少了页面中的冗余代码,提高代码的重复利用率。构造函数模式构造函数中的this,是当前类的一个实例。...
2019-06-04 12:44:00 181
原创 JavaScript深入之: 预解释、作用域、this原理及应用
一. 预解释:在当前作用域中,JS代码执行之前,浏览器首先会默认把带var和function的进行提前的声明或者定义。(1) 理解声明和定义:例如:var num = 12;声明(declare): var num; ->告诉浏览器在全局作用域中有一个num的变量了。定义(defined): num = 12; -> 给我们的变量进行赋值12.(2) 对于带var和fu...
2019-06-02 11:14:31 222
java设计模式
2016-10-06
关于web开发中的响应式布局
2016-11-19
TA创建的收藏夹 TA关注的收藏夹
TA关注的人