自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(153)
  • 资源 (18)
  • 收藏
  • 关注

原创 深度优先搜索算法—DFS

深度优先搜索算法—DFS图的遍历方法主要有两种:深度优先搜索遍历(DFS)和广度优先搜索遍历DFS深度优先搜索遍历类似于树的先序遍历,尽可能从纵深方向进行搜索,简单来说,DFS就是想找到最长的路径,基本思想是从图某个顶点V0V_0开始,访问此顶点,然后依次从V0V_0的各个没有访问的邻接点出发深度优先搜索遍历图,直至图中所有和V0V_0有路径连通的顶点都被访问到,若图是连通图,则遍历结束,否则,图中

2017-04-23 22:04:37 890

原创 回溯法与N皇后问题

N皇后问题要求求解在N*N的棋盘上放置N个皇后,并使各皇后彼此不受攻击的可能的棋盘布局,皇后彼此不受攻击的所有可能的布局,皇后彼此不受攻击的约束条件是:任何两个皇后均不能在棋盘同一行、同一列或者在对角线上出现。由于N皇后问题不允许两个皇后在同一行,所以,可用一维数组X表示N皇后问题的解,X[i]表示第i行的皇后所在的列,条件表述如下:X[i] = X[s],则第i行和第s行皇后在同一列上如果第i

2017-04-23 16:22:42 4580

原创 Sass入门(一)

1.CSS预处理器CSS预处理器定义了一种新的语言,其基本的思想是,用一种专门的编程语言,为CSS增加一些编程的特性,将CSS作为目标生成文件,然后开发者只要使用这种语言进行编码工作CSS的预处理器包括:Sass(SCSS)LESSStylusTurbineSwithch CSSCSS CacheerDT CSS2. Sass的定义Sass 官网上的描述:Sass 是一门高于 CSS

2017-04-22 21:08:27 847

原创 非线性结构之树

非线性结构之树1. 树的定义和表示树是n (n≥0n \geq 0 ) 个结点的有限集合,当n=0n = 0时,成为空树;当 n≥0n \geq 0 时,该集合满足如下条件:有且仅有一个根节点,该结点没有前驱,有≥0 \geq 0个后继除根节点之外的n−1n-1个结点可划分为m(m≥0m \geq 0)个互不相交的有限集T1,T2,T3…,TmT_1,T_2,T_3…,T_m,每个TiT_i又是

2017-04-21 21:24:15 720

原创 多维数组

多维数组一个n维数组可以看成是由“n-1维数组”的数据元素构成的一维数组,因此,多维数组可以看成是一种特殊的线性表,其特殊性在于表中的元素本身也是一种线性表。数组一旦被定义,它的维数和维界就不再改变,因此,除了结构的初始化和销毁之外,数组的操作只有获得特定位置的元素值和修改特定位置的元素值。这两种操作的关键都是数据元素的定位,即确定给定元素的下标,得到该元素在计算机中的存储位置,其本质都是地址计算问

2017-04-17 21:12:55 1203

原创 模式匹配算法

1. BF模式匹配算法算法思想:Brute-Force算法又叫蛮力匹配算法(简称BF算法),从主串S的第pos个字符开始,和模式串T的第一个字符进行比较,若相等,则继续逐个比较后续字符;否则回溯到主串S的第pos+1个字符开始再开始重新和模式串T进行比较,依此类推,直至模式串中的每一个字符依次和主串中的一个连续的字符序列全部相等,则称模式匹配成功,此时返回模式串T的第一个字符在主串S中出现的位置;否

2017-04-17 15:49:33 1298

原创 线性结构之串

线性结构之串字符串是一种特殊的线性表,它的特殊性在于线性表的数据元素限定为字符串。1. 几个常用的操作#ifndef _VSTRING_H_#define _VSTRING_H_#include<stdio.h>#include<string.h>#include<malloc.h>#define MAXSIZE 100int strLength(char *s); /

2017-04-16 21:39:04 1680

原创 线性结构之队列

线性结构之队列计算机输入输出缓冲区的结构就是队列的应用,队列是另一种限定性线性表,只允许在表的一端进行,而删除在表的另一端进行,这种结构叫做队或队列,把允许插入的一端叫做队尾,把允许删除的一端叫做队头,队列的插入操作叫做入队列,队列的删除操作叫做出队列或者退队列;队列中没有元素时,叫做空队列。队列是“先进先出”表。基本操作如下:(1)队列初始化(2)入队操作(3)出队操作(4)读队头元素(5)判队空

2017-04-16 17:10:52 477

原创 线性结构—栈

线性结构之栈栈是一种只允许在一端进行插入和删除的线性表,它是一种操作受限的线性表,在表中只允许进行插入和删除的一端称为栈顶,另一端称为栈底顺序栈—栈的顺序存储结构基本操作如下:初始化栈(建立栈空间,初始化栈顶指针)判栈空(将top值与-1进行比较,相等则说明栈空)判栈满(将top值与MAXSIZE-1进行比较,想等说明栈满)入栈(在栈未满的情况下,进行入栈操作)出栈(在栈未空的情况下,进行

2017-04-13 20:42:03 669

原创 线性结构—线性表

线性结构之线性表线性结构:线性表、栈、队列、串和数组线性结构的特点:除了第一个元素和最后一个元素外,每个数据元素有一个前驱和一个后继,线性表是最简单、最基本、最常用的数据结构,它有顺序存储和链式存储两种存储方案1. 线性表线性表是n个数据元素的有限序列,在表中,元素之间存在着线性的逻辑关系特点:同一性(线性表由同类元素组成,每一个ai必须属于同一数据对象)​ 有穷性(线性表是由有限个数

2017-04-13 12:33:00 918

原创 如何编写jQuery插件

如何编写jQuery插件1. jQuery插件的介绍首先,得明白编写插件的目的:给已经有的一系列方法或函数做一个封装,以便在其他地方重复使用,方便后期维护和提高开发效率。接下来,你就需要知道jQuery插件的分类:封装对象方法的插件:将对象方法封装起来,用于对通过选择器获取的jQuery对象进行操作,在jQuery内库中许多方法都是通过这种方式的,如parent()方法,appendTo()方法,

2017-04-11 21:31:22 736

原创 jQuery实现滚动效果

jQuery实现滚动效果1. 图片轮播:原理如下: 假设有三张图片,三张图片实际上都是存在于页面上的,但是由于设置的可视部分的大小(这里主要考虑宽度)是小于等于一张图片的大小的,想要看到其他图片的话,最直接的想法就是将需要显示的图片放在可视区域,也就是说需要改变的是整个图片区域的偏移值(left/right)具体实现:<!DOCTYPE html><html><head> <meta

2017-04-11 13:43:10 1191

原创 JavaScript笔记(一)

函数作用域函数作用域的嵌套关系是定义时决定的,而不是调用时决定的,也就是说,JavaScript 的作用域是静态作用域,又叫词法作用域,这是因为作用域的嵌套关系可 以在语法分析时确定,而不必等到运行时确定全局对象在 JavaScript 中有一种特殊的对象称为全局对象。这个对象在Node.js 对应的是 global 对象,在浏览器中对应的是 window 对象。由于全局对象的所有属性在任何地方都

2017-04-10 22:48:48 468

原创 本地数据正反查询的实现例子

本地数据正反查询的实现例子通过本地数据的查询可以减少与服务器交互的次数,提高效率,使得交互更优这里是用市县级为例的,主要的思想就是需要需要交互的数据不是通过后台查询数据库进行交互,而是通过本地的数据与用户进行交互,当用户选择完县级的时候,会将县级的ID号添加到URL上,而对于带有cityID的URL会进行一定的处理,根据ID查找对应的县和市并且显示在界面上,这种情况之下,就算用户重新刷新了,也会呈现

2017-04-08 01:39:54 1885

原创 A-star寻路算法

A*寻路算法什么是A*寻路算法?(A-Star)算法是一种静态路网中求解最短路最有效的直接搜索方法A*寻路算法的分析首先,就点的种类来说,就是三种,开始节点,结束节点,障碍节点从开始节点开始,每次找到九宫格中的其他节点(非开始的节点),并保存其 F = G + H的值,之后对F的值按照从小到大进行排序取得排序之后的第一个元素,按照上面的方法进行,直到该元素是结束元素为止具体的代码(1) 根据给

2017-04-06 20:06:45 723

原创 node.js的querystring.stringify的使用

node.js的querystring.stringify的使用该方法可以将对象转换为字符串,字符串中多个参数用‘&’分割,键与值用”=”赋值注意与 querystring.parse()区别,后者是将字符串转换为对象querystring.stringify(obj, [sep], [eq])obj:欲转换的对象sep:设置分隔符,默认为‘&’eq :设置赋值符,默认为‘=’querystri

2017-04-05 16:26:33 4477

原创 细节看出基本功

细节决定成败,这句话始终被验证有效,当然很显然,我又不小心犯了错误了,而且这个问题真的是有点low,所以,将一些被问到的问题总结出来1. 当点击一个li的时候,如何输出li里面的内容var oUl = document.getElementsByTagName('ul')[0];if(window.addEventListener) { oUl.addEventListener('click'

2017-03-31 15:50:47 533

原创 利用事件委托写一个简易扫雷游戏

1. 事件代理(委托)可以解决的问题:如果要用事件委托,就会将所有的操作放到js程序里面,与dom的操作就只需要交互一次,这样就能大大的减少与dom的交互次数,提高性能 基本原理:事件委托是利用事件的冒泡原理来实现的,何为事件冒泡(事件从最深的节点开始,然后逐步向上传播事件) 事件代理的适用场景:应用频繁触发事件时 || 当列表频繁创建删除时2. 一个简易的扫雷游戏我是从下面几步来完成的:

2017-03-24 01:17:19 665

原创 懒加载(延迟加载)

1、什么是懒加载?当访问一个页面的时候,先把img元素或是其他元素的背景图片路径(src属性)替换成一张大小为1*1px图片的路径(这样就只需请求一次),只有当图片或者其他元素出现在浏览器的可视区域内时,才设置图片正真的路径,让图片加载出来2 、懒加载的特点?一方面可以减轻服务器的压力,另一方面让页面更快地呈现在用户面前3、懒加载的实现?我们在写标签的时候,img的src中可以是一个占位图,真的路径

2017-03-17 01:03:47 872

原创 JS中XML的解析

1. 解析XML字符串function XMLResolve(xmlStr) { var parseXML = ""; if(typeof DOMParser == "function") { parseXML = function(xmlStr) { return (new DOMParser()).parseFromString(xmlStr

2017-03-12 22:45:11 3560

原创 JS中BOM部分基础知识总结

1. BOM(Browser Object Document)浏览器对象模型JS由三部分构成,ECMAScript,DOM和BOM, BOM,BOM主要是用来处理浏览器窗口和框架 DOM 是 W3C 的标准; (公共标准) BOM 是 各个浏览器厂商根据 DOM在各自浏览器上的实现; (有差异) window 是 BOM 对象,而非JS对象; 2. BOM的窗口(1)可视窗口

2017-03-11 17:44:47 583

原创 如何修改input[type="file"]的默认样式

1.首先我们先来看一下input[type=”file”]默认的样子 <input type="file" />2.改变input[type=”file”]默认的样子 这里我设置了 opacity: 0;使得 input变得不可见了.change{ opacity: 0;}<input class="change" type="file" multiple="multiple" />

2017-02-20 22:06:04 57766 1

原创 jQuery- 工具方法和实例方法

在使用jQuery的过程中,其实不难发现其中是存在不同的调用函数的方法的,这主要是因为存在两种方法,一个是工具方法,一个是函数方法$.get()$.post()$('#div1').html()工具方法无需实例化就可以调用的方法(函数),有两种形式: 1. 第一种定义一个最普通的函数,调用方式,函数名(), 2. 第二种是给一个类似‘类’的函数添加一个函数,形式为:类.函数名()调用)

2017-02-06 23:48:24 1994 5

原创 事件冒泡删除Table的一行

onclick事件冒泡在实际应用中,特别是写系统的后台管理的时候table的相关操作就显得格外重要。不合理的事件添加会影响效率。 具体的代码见下面:html>head> meta charset="utf-8"> title>title> script type="text/javascript"> window.onload = functi

2016-12-15 14:51:04 851

原创 Node.js EventEmitter

Node.js EventEmitterNode.js中大部分的模块,都继承自Event模块(也就是events.EventEmitter)是一个简单的事件监听器模式的实现关于events.EventEmitter的使用在下面这段代码中,通过EventEmitter 类的实例来绑定和监听事件var events = require('events'); var eventEmitter = new

2016-12-13 23:18:44 765

原创 闭包—闭包与变量

在闭包与变量这一块中我觉得有个例子很典型,当时自己在看这段代码时,还是有些难理解,在学习ES6的时候,看到类似的东西,有种豁然开朗的感觉。例子如下:function createFunctions(){ var result = new Array(); for(var i = 0; i < 10; i++){ result[i] = function(){

2016-11-18 12:19:07 660

原创 JQuery 实现 Ajax

今天刚好写了“省市联动”的代码,其中也遇到了不少的问题,JQuery也由于最近不太使用,略微有些生疏,那么下面就分享一下我用JQuery实现的ajax部分(这里从后台传来的的是xm形式的)首先就是简单的页面代码:<div> <select id="pro" onchange=""> <option value="">选择省份</option> <option

2016-11-02 22:59:11 599

原创 JS中在html中加载的顺序

这里写链接内容 以下的两段内容来自于上面的链接: 浏览器对于Javascript的运行有两大特性:1)载入后马上执行,2)执行时会阻塞页面后续的内容(包括页面的渲染、其它资源的下载)。于是,如果有多个js文件被引入,那么对于浏览器来说,这些js文件被被串行地载入,并依次执行。 因为javascript可能会来操作HTML文档的DOM树,所以,浏览器一般都不会像并行下载css文件并行下载j

2016-10-31 00:34:48 1552

原创 JS中的“this”

1. this的使用关于this,懂点Java就应该知道,this有以下用法: 1、在类的方法定义中使用的this关键字代表调用该方法对象的引用。 2、当必须指出当前使用方法的对象是谁时,要使用关键字this。 3、有时使用this可以处理方法中成员变量和参数重名的情况。 4、this可以看做是一个变量,它的值是当前对象的引用。 简而言之,就是谁调用的含有this的

2016-10-30 14:24:07 580

原创 JS中事件的添加

在JS中,事件的添加主要有三种方式: 1. 直接在html标签上添加 <div onclick="代码段或者是函数">div</div>这种方法也可以通过JS的obj.setAttribute("onclick", function(){........}完成2. 使用JS的DOM的方法添加 document.getElementById('div').onclick = function

2016-10-30 01:36:07 4006

原创 JS面向对象(三)— 接口

在JS中接口是面向对象最有用的工具之一,它可以提供一种说明一个对象应该具有哪些方法的手段。但是在JS中并没有接口的说明关键字interface,也没有用以实现接口的implements ,这个同前面的继承相似,只能通过模仿来描述接口。1. 注解描述法这种方式是通过注释的方式给出接口的描述,特点如下: 优点:对于开发的人可以有个参考 缺点:这个是属于文档的形式的,太过于松散,并没有检查接口的方法是

2016-10-29 00:50:53 1031

原创 JS面向对象(二)—继承

在面向对象的语言中,如Java,它的继承是单继承的,利用的是extends关键字实现的,而在JavaScript中同样是没有这个关键字的,但是通过以下的方式,我们还是可以模仿出继承来的。原型对象 当然在说这个继承之前,必须要明确的就是原型对象是什么?当我们在创建了一个新函数的时候,该函数就会拥有一个prototyp属性,这个属性是指向函数的原型对象的。在原型对象中,会自动拥有一个construct

2016-10-26 22:17:44 673

原创 JS面向对象(一)

JS面向对象(一)面向对象的语言的特点之一就是具有类的概念,而在JS并没有像Java中用来说明类的关键字class,而通过类可以创建多个具有相同属性和方法的对象,但是我们可以利用JS的特点,去模仿着实现类的作用。工厂模式构造函数模式对象模式工厂模式我们可以通过工厂模式(主要借助了关键字new)抽象具体创建一个对象的过程,在使用时只需关注结果,而不需要关注具体的实现细节 例如:function

2016-10-26 20:47:46 506

Node.js对于MongoDB的操作DAO的封装

这是通过Node.js对于MongoDB的操作DAO的封装的代码

2017-07-30

表单验证的插件

利用jQuery和Bootstrap编写的表单插件,可扩展

2017-06-15

虚拟DOM的实现

这是虚拟DOM简单实现的代码,理解时可以参考http://blog.csdn.net/dear_mr/article/details/72566716

2017-05-20

响应式的实例

这是响应式网站的Demo,可以作为学习响应式的参考

2017-05-15

XSS的攻击及防御代码的简单演示

这个是XSS的攻击及防御代码的简单演示,利用Node搭建的

2017-04-25

广度优先搜索算法BFS

广度优先搜索算法—BFS的相关代码,包括循环队列的代码

2017-04-24

深度优先搜索算法—DFS

该代码是DFS算法的实现,讲解部分可以查看我的博客

2017-04-23

线性结构-串

包含串的常用操作,以及从串S中删除串T的代码

2017-04-16

线性结构—队列

关于队列的代码,包括循环队列

2017-04-16

数据结构-栈的实现

数据结构中栈的代码,以及汉诺塔的代码

2017-04-13

C的线性表的实现

通过C语言实现的线性表,有顺序表结构和链式结构,以及链表合并的相关代码

2017-04-13

jQuery插件-轮播

这是一个仿照jQuery封装出的一个关于轮播的插件

2017-04-11

jQuery实现滚动效果

利用jQuery分别实现了轮播效果,上下文字滚动效果

2017-04-11

数据查询(本地数据)

利用本地数据查询,可以减少与后台交互的次数,提高效率

2017-04-09

本地数据的正反查询(市县联动示例)

本地数据的正反查询(市县联动示例)

2017-04-09

本地数据正反查询示例

2017-04-08

本地数据的正反查询-市县级

本地数据的正反查询-市县级

2017-04-08

A-star算法

A*算法的实现

2017-04-06

空空如也

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

TA关注的人

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