node

nodejs学习笔记|undefined

丶灬走出姿态 提交于 2020-02-10 00:41:04
一、Node.js是什么 ​ 是javascript运行时环境,简单来说,Node.js可以解析和执行javascript代码。以前只有浏览器解析和执行javascript代码,现在javascript可以完全脱离浏览器来运行,这一切都归功于Node.js。 浏览器中的javascript和node.js之间的区别: 浏览器中js包含EcmaScript、Dom、Bom, Node.js中的javascript没有Bom和Dom,因为不操作页面,只有EcmaScript来操作服务器。在Nodejs这个Javascript执行环境中为js提供了一些服务器级别的API操作,包括文件读写、网络服务构建,网络通信,http服务器等处理。 EcmaScript包含:变量、方法、数据类型、内置对象(Array、Object、Date、Math) Node特性 事件驱动 非阻塞IO模型(异步) 轻量和高效 原因:node构建于chrom的V8引擎之上,代码只具有特定格式的字符串而已,Nodejs的作者把Google chrome 中的V8引擎移出来,开发一个独立的javascript运行时环境。 Node能做什么 Web服务器后台 命令行工具:npm、git、hexo等 二、Node的使用 执行js脚本文件命令 node js文件.js 读取文件 ​ var fs=require('fs');

二叉搜索树05--第六天

筅森魡賤 提交于 2020-02-09 15:02:21
1.何为二叉搜索树 1.1二叉搜索树的接口设计 1.2添加节点 1.3元素比较方案 1.4相关代码 1.BinarySearchTree类 package com.mj; import java.util.Comparator; import java.util.LinkedList; import java.util.Queue; import com.mj.printer.BinaryTreeInfo; @SuppressWarnings("unchecked") public class BinarySearchTree<E> implements BinaryTreeInfo { private int size; private Node<E> root; private Comparator<E> comparator; public BinarySearchTree() { this(null); } public BinarySearchTree(Comparator<E> comparator) { this.comparator = comparator; } public int size() { return size; } public boolean isEmpty() { return size == 0; } public void clear()

单向链表的实现

岁酱吖の 提交于 2020-02-09 13:26:20
一前言 出于好奇发了点时间实现了一个简单的单向链表,本篇之中是使用单方向的方式实现,感觉不是很满意,有空应该研究一下头和尾的实现方式;数据结构有点弱,研究起来挺头疼,市面上也没有较好的书籍; 二 链表介绍 Java中ArrayList就是单向链表的实现方式(有研究过源码的读者肯定发行了ArrayList的链表实现方式是依赖于数组实现的),单向链表的查找比较慢,但是增删却很快;链表的每个节点(称为Node)都存储有一个数据(data)和下一个节点的指针(本文称为next);链表的尾节点指向null; 三 链表的实现 3.1 定义节点 节点中定义了data储存数据,方便实现使用了整型;Node类中还定义了下一个节点的指针;这样就简单实现了一个链表,前一个节点中就存储着下一个节点的引用; /** * @Author lsc * <p> 链表节点</p> */ public class Node { // 表示储存数据 public Integer data; // 表示指向下一个Node的指针 public Node next; // 构造函数 Node(){ } Node(Integer data){ this.data = data; } } 3.2 添加节点 思路 : 就是在链表的尾节点添加数据作为链表新的尾节点 /** * @Author lsc * <p> 单链表实现 </p>

Leetcode——863.二叉树中所有距离为 K 的结点

余生长醉 提交于 2020-02-09 12:53:05
给定一个二叉树(具有根结点 root), 一个目标结点 target ,和一个整数值 K 。 返回到目标结点 target 距离为 K 的所有结点的值的列表。 答案可以以任何顺序返回。 示例 1: 输入:root = [3,5,1,6,2,0,8,null,null,7,4], target = 5, K = 2 输出:[7,4,1] 解释: 所求结点为与目标结点(值为 5)距离为 2 的结点, 值分别为 7,4,以及 1 注意,输入的 "root" 和 "target" 实际上是树上的结点。 上面的输入仅仅是对这些对象进行了序列化描述。 提示: 给定的树是非空的,且最多有 K 个结点。 树上的每个结点都具有唯一的值 0 <= node.val <= 500 。 目标结点 target 是树上的结点。 0 <= K <= 1000. 来源:力扣(LeetCode) 链接: https://leetcode-cn.com/problems/all-nodes-distance-k-in-binary-tree 一 这道题给了我们一棵二叉树,一个目标结点 target,还有一个整数K,让返回所有跟目标结点 target 相距K的结点。我们知道在子树中寻找距离为K的结点很容易,因为只需要一层一层的向下遍历即可,难点就在于符合题意的结点有可能是祖先结点,或者是在旁边的兄弟子树中

OpenCV_Tutorials——CORE MODULE.THE CORE FUNCTIONALITY—— File Input and Output using XML and YAML files

泪湿孤枕 提交于 2020-02-09 11:34:00
2.9XML 和 YAML 格式作为文件输入输出 目标 你会从文中找到下面问题的答案: 1、如何从 OpenCV 使用的 YAML 或者 XML 文件中读取和打印文字条目。? 2、对于 OpenCV 数据结构如何做到相同的事情? 3、对你的数据结构如何做到? 4、OpenCV 的数据结构,例如 FileStorage , FileNode 或者 FileNodeIterator 的使用方法。 源代码 你可以从这里下载代码或者从 OpenCV 的源代码库的 samples/cpp/tutorial_code/core/file_input_output_file_input_out_put 位置查看代码。 #include <opencv2/core/core.hpp> #include <iostream> #include <string> using namespace cv; using namespace std; static void help(char** av) { cout << endl << av[0] << " shows the usage of the OpenCV serialization functionality." << endl << "usage: " << endl << av[0] << " outputfile.yml.gz" <<

剑指offer第二版-总结:二叉树的遍历

你离开我真会死。 提交于 2020-02-09 07:49:55
思想:前序(根左右),中序(左根右),后序(左右根) 前序非递归遍历: 首先判断根是否为空,将根节点入栈 1.若栈为空,则退出循环 2.将栈顶元素弹出,访问弹出的节点 3.若弹出的节点的右孩子不为空则将右孩子入栈 4.若弹出的节点的左孩子不为空则将左孩子入栈 5.返回1 后序遍历非递归: 前序:根->左->右 后序:左->右->根 可以把后序当作:根->右->左,然后再反转一下即可 中序遍历非递归: 根据中序遍历的顺序,对于任一结点,优先访问其左孩子,而左孩子结点又可以看做一根结点,然后继续访问其左孩子结点,直到遇到左孩子结点为空的结点才进行访问,然后按相同的规则访问其右子树。因此其处理过程如下: 对于任一结点P, 1)若其左孩子不为空,则将P入栈并将P的左孩子置为当前的P,然后对当前结点P再进行相同的处理; 2)若其左孩子为空,则取栈顶元素并进行出栈操作,访问该栈顶结点,然后将当前的P置为栈顶结点的右孩子; 3)直到P为NULL并且栈为空则遍历结束。 树结构 /** * Copyright(C) 2019 Hangzhou Differsoft Co., Ltd. All rights reserved. * */ package com.java.offer.tree; /** * @since 2019年2月15日 上午9:23:17 * @author xuchao * *

node-odata: ASP.NET WEB API OData的替代品

心不动则不痛 提交于 2020-02-09 04:28:59
什么是 OData 协议? OData, 相信身为 .NET 程序员应该不为陌生, 尤其是它的实现: ASP.NET WEB API OData . 对于 OData, 官网 上对其的定义是 OData - the best way to REST An open protocol to allow the creation and consumption of queryable and interoperable RESTful APIs in a simple and standard way. 可见 OData 是一个基于 REST 的 数据协议. OData 全名"开放数据协议(Open Data Protocol)", 是一个用于 web 的数据访问协议. OData 提供了一个统一的风格来来查询和维护数据集. 这里有一篇博文描述了 OData 想要解决的问题: 关于 OData 协议 . 什么是 node-odata? node-odata 是完全遵循 OData V4 协议实现的一套 OData REST API 框架, 它基于 NodeJS, 使用 ECMAScript 6 编写, 发布于 npm . 为什么使用 node-odata? node-odata 同时结合了 OData 强大的数据查询能力以及 NodeJS 支持高并发的优势,

nodejs - 浅析 stream(流)

允我心安 提交于 2020-02-09 03:32:37
詳細代碼 中文 api nodejs中有许多的对象或者方法都用到了流。 比如说 HTTP 请求 和 process.stdout 就都是流的实例。 nodejs中的流可以是可读的,可写的或者是可读写的。 而且另外一点,所有的流都是事件中 EventEmitter (emitter /ɪ’mɪtə/ n. 发射器 ) 的实例。 ## Node.js 中有四种基本的流类型: Readable - 可读的流 (例如 fs.createReadStream() ). Writable - 可写的流 (例如 fs.createWriteStream() ). Duplex - 可读写的流 (例如 net.Socket ). Transform - 在读写过程中可以修改和变换数据的 Duplex 流 (例如 zlib.createDeflate() ). ## 流的 事件 and 模式 (Readable 為例) 事件 fs.createReadStream有以下监听事件: 然后ReadStream类又继承了Readble。 所以它又拥有下面这些事件: 模式 有兩種模式 flowing(流动模式) paused(暂停模式) 官方文档中介绍了,可读流默认的模式是paused。 切换的方法有三种,我们已经监听data事件,这时可读流的模式已经变成了flowing 其他流 Writable (可写流