last

数据结构和算法双链表

半世苍凉 提交于 2019-12-26 21:57:51
双向链接列表是链接列表的变体,与单链接列表相比,可以以两种方式轻松地向前和向后导航。以下是理解双向链表概念的重要术语。 链接 - 链接列表的每个链接都可以存储称为元素的数据。 Next - 链接列表的每个链接都包含指向下一个名为Next的链接的链接。 上一页 - 链表的每个链接都包含一个名为Prev的上一个链接的链接。 LinkedList - 链接列表包含指向名为First的第一个链接和名为Last的最后一个链接的连接链接。 双重链表清单表示 根据以上说明,以下是要考虑的重点。 双链表包含一个名为first和last的链接元素。 每个链路都带有一个数据字段和两个名为next和prev的链接字段。 每个链接使用其下一个链接与其下一个链接链接。 每个链接使用其先前的链接与其先前的链接链接。 最后一个链接带有一个null链接以标记列表的结尾。 基本操作 以下是列表支持的基本操作。 插入 - 在列表的开头添加元素。 删除 - 删除列表开头的元素。 Insert Last - 在列表末尾添加元素。 最后 删除 - 从列表末尾删除元素。 Insert After - 在列表项 之后 添加元素。 删除 - 使用键从列表中删除元素。 显示转发 - 以转发方式显示完整列表。 向后 显示 - 以向后方式显示完整列表。 插入操作 下面的代码演示了双向链表开头的插入操作。 例 //insert link

Collection常用子类源码阅读-List子类篇:LinkedList

左心房为你撑大大i 提交于 2019-12-26 17:11:41
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 类图关系: LinkedList底层存储数据结构: private static class Node<E> { //当前元素存储的值 E item; //当前元素的前一个元素 Node<E> next; //当前元素的下一个元素 Node<E> prev; Node(Node<E> prev, E element, Node<E> next) { this.item = element; this.next = next; this.prev = prev; } } LinkedList的属性变量: //长度 transient int size = 0; //第一个元素 transient Node<E> first; //最后一个元素 transient Node<E> last; 一、构造方法: LinkedList的构造方法,除了一个无参构造方法,还有一个以Collection 实例为入参的构造方法,内部调用了allAll(Collection实例)方法,后面再细说吧。看过LinkedList的底层数据结构和属性变量之后,在这里需要细说一下LinkedList的结构: 一个Node节点对象,它的next属性引用指向下一个节点,prev属性引用指向上一个节点,因此节点与节点之间形成一个链表的结构

CSS选择器

主宰稳场 提交于 2019-12-26 15:56:19
一、基本选择器 序号 选择器 含义 1. * 通用元素选择器,匹配任何元素 2. E 标签选择器,匹配所有使用E标签的元素 3. .info class选择器,匹配所有class属性中包含info的元素 4. #footer id选择器,匹配所有id属性等于footer的元素 实例: * { margin:0; padding:0; } p { font-size:2em; } .info { background:#ff0; } p.info { background:#ff0; } p.info.error { color:#900; font-weight:bold; } #info { background:#ff0; } p#info { background:#ff0; } 二、多元素的组合选择器 序号 选择器 含义 5. E,F 多元素选择器,同时匹配所有E元素或F元素,E和F之间用逗号分隔 6. E F 后代元素选择器,匹配所有属于E元素后代的F元素,E和F之间用空格分隔 7. E > F 子元素选择器,匹配所有E元素的子元素F 8. E + F 毗邻元素选择器,匹配所有紧随E元素之后的同级元素F 实例: div p { color:#f00; } #nav li { display:inline; } #nav a { font-weight:bold; }

CSS选择器

元气小坏坏 提交于 2019-12-26 15:55:44
CSS选择器 一、基本选择器 序号 选择器 含义 1. * 通用元素选择器,匹配任何元素 2. E 标签选择器,匹配所有使用E标签的元素 3. .info class选择器,匹配所有class属性中包含info的元素 4. #footer id选择器,匹配所有id属性等于footer的元素 实例: * { margin:0; padding:0; } p { font-size:2em; } .info { background:#ff0; } p.info { background:#ff0; } p.info.error { color:#900; font-weight:bold; } #info { background:#ff0; } p#info { background:#ff0; } 二、多元素的组合选择器 序号 选择器 含义 5. E,F 多元素选择器,同时匹配所有E元素或F元素,E和F之间用逗号分隔 6. E F 后代元素选择器,匹配所有属于E元素后代的F元素,E和F之间用空格分隔 7. E > F 子元素选择器,匹配所有E元素的子元素F 8. E + F 毗邻元素选择器,匹配所有紧随E元素之后的同级元素F 实例: div p { color:#f00; } #nav li { display:inline; } #nav a { font-weight

CSS选择器

旧城冷巷雨未停 提交于 2019-12-26 15:55:15
一、基本选择器 序号 选择器 含义 1. * 通用元素选择器,匹配任何元素 2. E 标签选择器,匹配所有使用E标签的元素 3. .info class选择器,匹配所有class属性中包含info的元素 4. #footer id选择器,匹配所有id属性等于footer的元素 实例: * { margin:0; padding:0; } p { font-size:2em; } .info { background:#ff0; } p.info { background:#ff0; } p.info.error { color:#900; font-weight:bold; } #info { background:#ff0; } p#info { background:#ff0; } 二、多元素的组合选择器 序号 选择器 含义 5. E,F 多元素选择器,同时匹配所有E元素或F元素,E和F之间用逗号分隔 6. E F 后代元素选择器,匹配所有属于E元素后代的F元素,E和F之间用空格分隔 7. E > F 子元素选择器,匹配所有E元素的子元素F 8. E + F 毗邻元素选择器,匹配所有紧随E元素之后的同级元素F 实例: div p { color:#f00; } #nav li { display:inline; } #nav a { font-weight:bold; }

SQL实战(四)

吃可爱长大的小学妹 提交于 2019-12-26 08:13:14
一、 题目描述 将employees表的所有员工的last_name和first_name拼接起来作为Name,中间以一个空格区分 CREATE TABLE `employees` ( `emp_no` int(11) NOT NULL, `birth_date` date NOT NULL, `first_name` varchar(14) NOT NULL, `last_name` varchar(16) NOT NULL, `gender` char(1) NOT NULL, `hire_date` date NOT NULL, PRIMARY KEY (`emp_no`)); select last_name||" "||first_name from employees as Name    二、 注意系统默认时间获取方法 这是sql server 和SQLlite 语法区别 1、 create table actor ( actor_id smallint(5) not null primary key, first_name varchar(45) not null, last_name varchar(45) not null, last_update timestamp not null default(datetime('now','localtime')) )

java基础集合类——LinkedList 源码略读

纵饮孤独 提交于 2019-12-26 04:48:46
1.概览 LinkedList是java的动态数组另一种实现方式,底层是基于双向链表,而不是数组。 public class LinkedList<E> extends AbstractSequentialList<E> implements List<E>, Deque<E>, Cloneable, java.io.Serializable LinkedList实现了动态数组与双向队列两个接口,提供了两种方法集合,可以用来实现队列、栈之类的功能。 2. 成员变量 先来看成员变量 transient int size = 0; transient Node<E> first; transient Node<E> last; private static class Node<E> { E item; Node<E> next; Node<E> prev; Node(Node<E> prev, E element, Node<E> next) { this.item = element; this.next = next; this.prev = prev; } } 链表一般就是有个head的节点就能完成对应的工作。LinkedList实现了双向链表,除了head,还有一个last节点和一个size参数,这主要是为了效率考虑,不然查询一次长度或者尾都得来一次全链路迭代,太慢了

错误:java.lang.Exception: java.io.IOException: Initialization of all the collectors failed. Error in l

元气小坏坏 提交于 2019-12-25 20:47:29
错误:java.lang.Exception: java.io.IOException: Initialization of all the collectors failed. Error in last collector was :interface javax.xml.soap.Text java.lang.Exception: java.io.IOException: Initialization of all the collectors failed. Error in last collector was :interface javax.xml.soap.Text at org.apache.hadoop.mapred.LocalJobRunner$Job.runTasks(LocalJobRunner.java:462) at org.apache.hadoop.mapred.LocalJobRunner$Job.run(LocalJobRunner.java:522) Caused by: java.io.IOException: Initialization of all the collectors failed. Error in last collector was :interface javax.xml.soap.Text at org

Essential c++初学 第三章 basic c++ programming

谁说我不能喝 提交于 2019-12-25 19:53:42
泛型编程 1.指针的算术运算 为了操作容器中的数据而不用管它的数据类型是什么,使用泛型(generic)算法,不直接在容器身上进行操作,而是借用一对iterator,标识我们要进行迭代的范围。 1.对于array来说,传入array而不管array里面是什么 //写出template泛型 find()函数 template < typename T > T * find ( T * first , T * last , const T & value ) { if ( ! first || ! last ) return 0 ; for ( ; first != last ; ++ first ) { if ( * first == value ) return first ; //输出所查找元素的地址 } return 0 ; } int main ( ) { int ia [ 8 ] = { 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 } ; int * pi = find ( ia , ia + 8 , ia [ 3 ] ) ; //find()返回所查找元素的地址 } 2.传入vector而不管vector里面是什么 # include <vector> # include <iostream> //编写泛型find函数 template <

nginx 常见正则匹配符号表示

浪尽此生 提交于 2019-12-24 17:52:58
nginx 常见正则匹配符号表示 1 2 3 4 5 6 7 8 9 10 11 1、^: 匹配字符串的开始位置; 2、 $:匹配字符串的结束位置; 3、.*: .匹配任意字符,*匹配数量0到正无穷; 4、\. 斜杠用来转义,\.匹配 . 特殊使用方法,记住记性了; 5、(值1|值2|值3|值4):或匹配模式,例:(jpg|gif|png|bmp)匹配jpg或gif或png或bmp 6、i不区分大小写   一.正则表达式匹配,其中: * ~ 为区分大小写匹配 * ~* 为不区分大小写匹配 * !~和!~*分别为区分大小写不匹配及不区分大小写不匹配 二.文件及目录匹配,其中: * -f和!-f用来判断是否存在文件 * -d和!-d用来判断是否存在目录 * -e和!-e用来判断是否存在文件或目录 * -x和!-x用来判断文件是否可执行 三.rewrite指令的最后一项参数为flag标记,flag标记有: 1.last 相当于apache里面的[L]标记,表示rewrite。 2.break本条规则匹配完成后,终止匹配,不再匹配后面的规则。 3.redirect 返回302临时重定向,浏览器地址会显示跳转后的URL地址。 4.permanent 返回301永久重定向,浏览器地址会显示跳转后的URL地址。 使用last和break实现URI重写,浏览器地址栏不变。而且两者有细微差别