西维蜀黍

【OpenWrt】OpenWrt的路由器ssh访问

上下文

在成功刷完OpenWrt固件到路由器后,可以直接通过Luci界面来配置root用户的密码(同时,这个密码也是OpenWrt路由器管理页面的账号密码,如下图)。

  ...


【Data Structure】广义表(Generalised List)

数组既可以存储不可再分的数据元素(如数字 5、字符 ‘a’),也可以继续存储数组(即 n 维数组)。

  ...


【Data Structure】矩阵

矩阵

数据结构中,提供针对某些特殊矩阵的压缩存储结构。

这里所说的特殊矩阵,主要分为以下两类:

  • 含有大量相同数据元素的矩阵,比如对称矩阵
  • 含有大量 0 元素的矩阵,比如稀疏矩阵、上(下)三角矩阵

针对以上两类矩阵,数据结构的压缩存储思想是:矩阵中的相同数据元素(包括元素 0)只存储一个

  ...


【Data Structure】树(Trees)

树(Tree)

上图(A) 是使用树结构存储的集合 {A,B,C,D,E,F,G,H,I,J,K,L,M} 的示意图。对于数据 A 来说,和数据 B、C、D 有关系;对于数据 B 来说,和 E、F 有关系。这就是“一对多”的关系。

  ...


【Algorithm】字符串匹配算法 - 朴素的字符串匹配算法(Naive String Matching Algorithm)

模式匹配/ 字符串匹配算法

字符串匹配

字符串匹配问题的形式定义:

  • **文本(Text)**是一个长度为 n 的数组 T[1..n];
  • **模式(Pattern)**是一个长度为 m 且 m≤n 的数组 P[1..m];
  • T 和 P 中的元素都属于有限的字母表 Σ 表
  • 如果 0≤s≤n-m,并且 T[s+1..s+m] = P[1..m],即对 1≤j≤m,有 T[s+j] = P[j],则说模式 P 在文本 T 中出现且位移为 s,且称 s 是一个有效位移(Valid Shift)
  ...


【Algorithm】字符串匹配算法 - KMP 算法

模式匹配/ 字符串匹配算法

字符串匹配

字符串匹配问题的形式定义:

  • **文本(Text)**是一个长度为 n 的数组 T[1..n],在下文中,将其对应的字符串称之为"源字符串";
  • **模式(Pattern)**是一个长度为 m 且 m≤n 的数组 P[1..m],在下文中,将其对应的字符串称之为"模式字符串";
  • T 和 P 中的元素都属于有限的字母表 Σ 表
  • 如果 0≤s≤n-m,并且 T[s+1..s+m] = P[1..m],即对 1≤j≤m,有 T[s+j] = P[j],则说模式 P 在文本 T 中出现且位移为 s,且称 s 是一个有效位移(Valid Shift)
  ...


【Data Structure】串(String)

串(String)

**串的基本概念:**串是由零个或多个任意字符组成的字符序列。

一般记作:s=‘a1 a2 an’。

  ...


【Data Structure】队列(Queue)

队列(Queue)

通常,称进数据的一端为 “队尾”(rear),出数据的一端为 “队头”(top),数据元素进队列的过程称为 “入队(enqueue)",出队列的过程称为 “出队(dequeue)"。

  ...


【Data Structure】栈的应用

栈的应用

栈是一种很重要的数据结构,在计算机中有着很广泛的应用,如下一些操作都应用到了栈。

  • 符号匹配,HTML和XML文件中的标签匹配
  • 中缀表达式(Infix Expressions)转换为后缀表达式(Postfix Expressions)
  • 实现函数的嵌套调用
  • 表达式求值
  • 网页浏览器中已访问页面的历史记录
  ...


【Java】集合类 - Stack

Stack 类是Vector类的一个子类,它通过数组实现了一个标准的后进先出的栈。

构造函数

Stack 的实现非常简单,仅有一个构造方法。

public Stack() {
}

方法

除了由Vector定义的所有方法,自己也定义了一些方法:

序号 方法描述
1 boolean empty() 测试堆栈是否为空。
2 Object peek( ) 查看堆栈顶部的对象,但不从堆栈中移除它。
3 Object pop( ) 移除堆栈顶部的对象,并作为此函数的值返回该对象。
4 Object push(Object element) 把项压入堆栈顶部。
5 int search(Object element) 返回对象在堆栈中的位置,以 1 为基数。

public boolean empty()

返回栈是否为空。

public boolean empty() {
    return size() == 0;
}
  ...