数据结构: ”串“ 的全面讲解

96
Carson_Ho 595a1b60 08f6 4beb 998f 2bf55e230555
0.6 2019.03.25 09:12* 字数 688

前言

  • 本文主要讲解 数据结构中的串
  • 内容包括其特点、结构等,希望你们会喜欢。
  • ps:最近在筹备一个”和我一起写Android“的活动,需要各大读者的帮忙,希望能看文章参与哦:我想邀请您和我一起写Android(福利回赠)

目录

示意图

1. 简介

示意图

2. 存储结构介绍

包括:顺序存储结构 & 链式存储结构

示意图

3. 串的比较

示意图

4. 子串的定位

  • 子串定位 的主要任务是:确定主串是否存在子串 & 子串在主串中的位置

子串的定位操作 也称 串的模式匹配

  • 下面主要讲解串模式匹配的重要方法:KMP模式匹配算法

4.1 KMP模式匹配算法 简介

http://www.ruanyifeng.com/blog/2013/05/Knuth%E2%80%93Morris%E2%80%93Pratt_algorithm.html

示意图

4.2 具体算法

  • 概念:字符串的前缀 & 后缀
示意图
  • 具体使用
    步骤1:计算出子串(T串)各个位置的 j 值的变化
    步骤2:根据步骤1计算出的next数组,将子串与主串进行模式匹配
示意图

下面将重点讲解步骤1:计算出子串(T串)各个位置的 j 值的变化

  • 定义1数组:next [ j ] = 子串(T串)各个位置的 j 值的变化

j 值仅取决于:T串 当前字符 前后缀字符的相似度

  • next [ j ]值的函数定义如下

    示意图

  • 举例说明

示意图

4.3 算法改进

示意图

5. 总结


请点赞!因为你的鼓励是我写作的最大动力!

相关文章阅读
Android开发:最全面、最易懂的Android屏幕适配解决方案
Android事件分发机制详解:史上最全面、最易懂
Android开发:史上最全的Android消息推送解决方案
Android开发:最全面、最易懂的Webview详解
Android开发:JSON简介及最全面解析方法!
Android四大组件:Service服务史上最全面解析
Android四大组件:BroadcastReceiver史上最全面解析


欢迎关注Carson_Ho的简书!

不定期分享关于安卓开发的干货,追求短、平、快,但却不缺深度

数据结构
Web note ad 1