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模式匹配算法

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

  • 相关阅读:
    连接sql sever2008数据库出现了无法连接到数据库引擎问题解决
    关于ssh的一些问题
    23.Xcode中常用的快捷键操作
    22.上传app一些相关问题
    20.cocoapods的安装和使用
    19. UIAlertController 提示框获取文本内容,打印控制台上
    18.safari 安装后flash还是提示安装 flash,视频不能播放
    17.iOS App设置icon,启动图,App名称的方法
    16.iOS APP图标和启动画面尺寸
    15.Xcode8 升级遇到的问题
  • 原文地址:https://www.cnblogs.com/cwyblogs/p/8310448.html
Copyright © 2011-2022 走看看