node

单链表(Singly LInked LIst)

邮差的信 提交于 2020-02-15 05:32:49
单链表(Singly Linked List) 单链表是比较常见的链表类型。其中每个节点都有一个指向序列下一个节点的指针。这意味着,对链表执行遍历时,只能在一个方向上从头到尾的遍历;为了能够访问链表中的最后一个节点,我们需要遍历链表中的所有元素。 单链表最后一个节点的指针域通常为NULL,在遍历到这个节点时,它指定当前链表已经结束,没有其它要遍历的节点了。 单链表的实现 定义节点 节点由两个部分组成,一个部分存储本身的数据,另一部分存储序列中下一个节点所在的内存地址。为了简单表示,我们使用一个整数作为节点的数据域,节点的数据域不仅仅局限于一个数值,可以是其它复杂的数据类型。 在C语言中,节点被定义为structure.该节点中的一个节点指向同类节点的另外一个节点。 struct Node { int data ; struct Node * next ; } * head = NULL ; 首先使用所需变量名创建一个新的节点,我们将其称之为newNode: struct Node * newNode ; 可以使用箭头字符访问存储在此Node中的数据: newNode -> data 同样的,使用执行节点的 *next 成员访问当前序列中的下一个节点: newNode -> next 头指针节点 头指针节点用于链表的第一个节点,用于标识链表的起点,并为链表的遍历提供入口。

62.二叉搜索树的第k个结点

耗尽温柔 提交于 2020-02-14 23:26:05
题目 给定一棵二叉搜索树,请找出其中的第k小的结点。例如, (5,3,7,2,4,6,8) 中,按结点数值大小顺序第三小结点的值为4。 思路 二叉搜索树的中序遍历是升序的,要找到第k个结点,就中序遍历到第k个结点就行了。 代码 /* struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { } }; */ class Solution { int cnt ; TreeNode * res ; public : TreeNode * KthNode ( TreeNode * pRoot , int k ) { cnt = 0 ; res = nullptr ; helper ( pRoot , k ) ; return res ; } void helper ( TreeNode * node , int & k ) { if ( node == nullptr ) return ; helper ( node - > left , k ) ; cnt + = 1 ; if ( cnt == k ) { res = node ; return ; } helper ( node - >

关于作用域的问题

倖福魔咒の 提交于 2020-02-14 11:39:56
ans = [ ] def helper ( node ) : ans . append ( 1 ) # ans不存在,会使用全局的ans列表,会修改上面个ans, print ( ans ) # [1] return helper ( root ) print ( ans ) # [1]我而不是[] ans = 0 def helper ( node ) : ans = 1 # 不会修改上面个ans,这里会定义为新的局部变量 print ( ans ) # 1 return helper ( root ) print ( ans ) # 0 我而不是1 来源: CSDN 作者: 三岁与十八 链接: https://blog.csdn.net/qq_27921205/article/details/104307285

nginx 配置来部署python的项目, 动静分离项目 与 不分离的项目

风格不统一 提交于 2020-02-14 03:45:55
nginx 的作用 1. 做静态页展示的web服务 2.nginx做负载均衡   四层   七层 3. 反向代理 二. 源码安装nginx 1)解压nginx [root@db01 ~]# tar xf nginx-1.10.3.tar.gz 2)进入nginx目录,并查看 [root@db01 ~]# cd nginx-1.10.3 [root@db01 nginx-1.10.3]# ll total 672 drwxr-xr-x. 6 1001 1001 4096 May 13 09:04 auto -rw-r--r--. 1 1001 1001 265299 Jan 31 2017 CHANGES -rw-r--r--. 1 1001 1001 404694 Jan 31 2017 CHANGES.ru drwxr-xr-x. 2 1001 1001 168 May 13 09:04 conf -rwxr-xr-x. 1 1001 1001 2481 Jan 31 2017 configure drwxr-xr-x. 4 1001 1001 72 May 13 09:04 contrib drwxr-xr-x. 2 1001 1001 40 May 13 09:04 html -rw-r--r--. 1 1001 1001 1397 Jan 31 2017 LICENSE

nodejs基础【持续更新中】

拜拜、爱过 提交于 2020-02-14 02:06:23
简介 Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine . Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient. Node.js' package ecosystem, npm , is the largest ecosystem of open source libraries in the world. Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。 Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。 Node.js 的包管理器 npm,是全球最大的开源库生态系统。 英文网址:https://nodejs.org/en/ 中文网址:http://nodejs.cn/ Nodejs安装 版本选择:【官方目前有两种版本,一种是长期稳定版,另一种是开发版,推荐使用长期稳定版】 Long Term Support:长时间支持版本【简写LTS】 操作步骤: 依赖python2.7 (一) 编译好的文件 #下载 wget https://nodejs.org/dist/v8.5.0/node-v8

nodejs更新遇到的问题

不打扰是莪最后的温柔 提交于 2020-02-14 02:03:39
突然发现Nodejs已经发布到7.6了,我还在用着4.4。。 赶紧更新一下 1. 更新npm库,这一步可以忽略 npm update –g 2. 更新Nodejs,安装n模块,n模块是专门用来管理node.js的版本的 npm install –g n 用npm安装失败,改为cnpm npm install -g cnpm --registry=https://registry.npm.taobao.org 3. 升级node.js n latest 最新版 n stable 最新稳定版 n可以下载任意版本的nodejs安装到本机,非常方便。 n v0.10.26 n 0.10.26 结果没有权限 mkdir: cannot create directory ‘/usr/local/n/versions’: Permission denied [closed] 用管理员帐户登录即可,更改时一定要确认是系统中可以选择性删除的文件,不要盲目更改或删除。 如果确实是以管理员权限打开还是没用, 那就选择要打开的文件修改,右键属性,安全,添加用户Everyone,分配权限为所有 实在不行去官网下载node最新版本,重新安装 项目的node-sass rebuild一下 npm rebuild node-sass 来源: https://www.cnblogs.com/knightreturn

数据结构与算法(2)

a 夏天 提交于 2020-02-14 01:51:24
1 双向线性链表 2 单向线性链表 1 双向线性链表 1.1 问题 双向线性链表是采用链式存储的方式存储的线性表。链式存储结构是由一系列结点(链表中每一个元素称为结点)组成,每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储当前结点的前驱结点和后继结点地址的指针域,结点是在有数据时动态生成的,是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。 1.2 方案 双向线性链表的基本操作包括: 初始化操作,在初始化操作中将双向线性链表的头指针指空。 求表长,求表长操作是计算出双向线性链表中结点的个数。 取双向线性链表中指定位置的结点,即给定双向线性链表中的第几个结点,求其值。 查找结点,在双向线性链表中查找值为x的结点,并返回该结点在双向线性链表中的位置。若双向线性链表中有多个结点的值和x相同,则返回首次找到的结点位;若双向线性链表中没有结点的值为x,则返回一个NULL表示查找失败。 插入结点,在双向线性链表的第i个结点前插入一个值为x的新结点。 删除结点,删除双向线性链表的第i个结点。 1.3 步骤 实现此案例需要按照如下步骤进行。 步骤一:定义双向线性链表 在C语言中: 1)定义一个变量来表示双向线性链表中某个结点的数据。 2)定义两个指针来表示该结点的前驱结点和后继结点的地址。 3

tsconfig常用配置解析

╄→尐↘猪︶ㄣ 提交于 2020-02-13 22:35:58
一、TypeScript编译工具安装 我们用TypeScript开发项目的时候, 编写的源文件都是以".ts"结尾的文件 ,而 ".ts"文件是无法直接被浏览器或node环境下直接运行的 ,所以必须进行编译,将".ts"的文件编译成".js"文件后才能直接运行。要想编译TypeScript文件,那么 必须使用tsc编译工具 ,需要注意的是,我们 并不是直接去安装tsc , 而是全局安装typescript ,全局安装好typescript之后,就可以在命令行工具中直接使用tsc命令了,如下图所示: 二、tsc编译工具的使用 首先我们可以在命令行中,输入 tsc --help ,即可查看tsc命令的使用帮助文档。如果直接在项目根目录下输入 tsc ,那么 tsc会将项目下的所有".ts"文件都进行编译,编译后输出的文件与源ts文件同名、同位置 。 我们可以在执行tsc命令的时候传递一些参数,进行特定的配置,如: // 编译结果采用es5,模块形式采用commonjs,编译源文件为 ts/index.ts tsc --target es5 --module commonjs ts/index.ts 对于简单的项目,我们可以通过给tsc命令传递一些参数进行编译,但是如果是大型的复杂项目,那么通过传递命令参数的形式进行编译就会显得心有余而力不足了,也不方便。我们可以采用配置文件的方式

node.js 学习笔记(二)windows下 使用 nvm 进行 node 版本管理

懵懂的女人 提交于 2020-02-13 19:56:05
1 下载nvm windows 用户下载nvm-windows, 下载链接 选择nvm-setup.zip,按照默认配置,安装后即可使用 2 使用方式 nvm list 查看当前所有的node版本 nvm install v10.13.0 安装10.13.0版本node nvm use --delete-prefix v10.13.0 切换到 10.13.0版本 来源: CSDN 作者: TUTsmile 链接: https://blog.csdn.net/TUTsmile/article/details/104300783

在树莓派3B上安装node.js

怎甘沉沦 提交于 2020-02-13 03:02:12
本文主讲如何在 树莓派3B 上安装node.js 环境描述 1. 树莓派安装了`2016-11-25-raspbian-jessie-lite`(PS:在此版本的镜像中,默认禁用了ssh,在烧录好镜像之后,在`boot`分区中新建一个名为`ssh`的文件夹,正常开机,通过ssh即可连接到树莓派) 2. 所有官方软件源软件已经更新至最新版。 目标 在树莓派3B上安装node.js-6.9.4(截至本文发布时间的最新稳定版) 实战 连接树莓派之后: 下载已经编译好的node.js for ARM 版本 1 $ wget https://nodejs.org/dist/latest-v6.x/node-v6.9.4-linux-armv7l.tar.gz 解压文件 1 $ tar -xvf node-v6.9.4-linux-armv7l.tar.gz 验证node是否正常 $ cd node-v6.9.4-linux-armv7l/bin/ $ ./node -v v6.9.4 说明正常,PS:运行npm会出现如下错误信息: $ ./npm -v /usr/bin/env: node: No such file or directory 别着急,往下看。 依次输入以下命令: $ cd ~/ $ mv node-v6.9.4-linux-armv7l /usr/local/node $