zoukankan      html  css  js  c++  java
  • 大话数据结构(第五章 串)

    串(string):由零个或者多个字符组成的有限序列,又名字符串。

    一些概念:串无元素为空串,长度为零;串中任意个数连续字符组成的子序列称为该串的子串,包含子串的串称为主串。

    1、串的比较

      串的比较是通过组成串字符之间的编码进行的,字符的编码指的是字符在对应字符集中的序号。

      计算机中常用的字符是使用标准ASCII编码,其有7位二进制数表示一个字符,总共可以表示128个字符。ASCII扩展为8位可以表示256个字符,满足以英语为主的国家。对于汉族等国家名族等,256显然不够。

      因此有了Unicode编码,一般用16进制表示,约65万个字符。为了与ASCII兼容,Unicode的前256个字符与ASCII完全相同。

       一般串的比较可以用在排序的功能上,一个应用例子就是字典里面单次的排序。

    2、串的抽象数据类型

      串的逻辑结构与线性表很相似,不同之处在于串针对的是字符集。

      串的基本操作与线性表有很大区别,线性表更关注的是单个元素的操作,比如查找一个元素,插入或者删除一个元素,但是串中更多的是查找子串的位置、得到指定位置子串、替换子串等操作。

      不同的高级语言,对于串的基本操作有不同的定义方法,但除了方法名称外,实质是类似的。

    3、串的存储结构

      同样,分为顺序存储和链式存储。

      顺序存储,按照预定义大小分配固定长度的存储区。

      串的链式存储结构:串的链式存储中,一个节点可以存储一个字符也可以存储多个字符。

      起始串的链式存储结构在连接串与串操作时有一定的方便之外,不如顺序存储灵活,性能不如顺序存储结构

    好。

    4、朴素的模式匹配算法

      在主串中查找子串,m为主串长度,n为子串长度。

      效率低

    5、KMP模式匹配算法

      自己看,似乎有点复杂,没细看

  • 相关阅读:
    Spring中的JDBC API
    Spring中的AOP(二)
    Nginx服务器代理静态资源
    Intellij IDEA配置Maven(内置Maven和修改本地仓库地址和阿里云中央仓库)
    Java函数传参(String的不可变性)
    Java中的前向引用与类初始化顺序
    【解决】com.mysql.cj.jdbc.Driver failed to unregister it /Abandoned connection cleanup thread
    SSM框架项目结构以及版本匹配
    Web4.0中web.xml头信息
    【解决】org.apache.tomcat.util.descriptor.web.WebXml.setVersion Unknown version string [4.0]
  • 原文地址:https://www.cnblogs.com/cwyblogs/p/8310448.html
Copyright © 2011-2022 走看看