zoukankan      html  css  js  c++  java
  • 数据结构之串类型

      串的基本概念:

      串(字符串):是零个或多个字符组成的有限序列。记作: S=“a1a2a3…”,其中S是串名,ai(1≦i≦n)是单个,可以是字母、数字或其它字符。

      串值:双引号括起来的字符序列是串值。

      串长:串中所包含的字符个数称为该串的长度。

      空串(空的字符串):长度为零的串称为空串,它不包含任何字符。

      空格串(空白串):构成串的所有字符都是空格的串称为空白串。注意:空串和空白串的不同,例如“  ”和“”分别表示长度为1的空白串和长度为0的空串。

      子串(substring):串中任意个连续字符组成的子序列称为该串的子串,包含子串的串相应地称为主串。

      子串的序号:将子串在主串中首次出现时的该子串的首字符对应在主串中的序号,称为子串在主串中的序号(或位置)。

      特别地,空串是任意串的子串,任意串是其自身的子串。

      串相等:如果两个串的串值相等(相同),称这两个串相等。换言之,只有当两个串的长度相等,且各个对应位置的字符都相同时才相等。

      通常在程序中使用的串可分为两种:串变量和串常量。

      串的抽象数据类型定义:

      ADT String{
        数据对象:D = { ai|ai∈CharacterSet,  i=1,2,…,n, n ≥0 }
        数据关系:R = {<ai-1, ai>| ai-1, ai∈D,  i=2,3,…,n }
        基本操作:
        StrAssign(t , chars)
          初始条件: chars是一个字符串常量。
          操作结果:生成一个值为chars的串t 。
        StrConcat(s, t)
          初始条件:串s, t 已存在。
          操作结果:将串t联结到串s后形成新串存放到s中。
        StrLength(t)
          初始条件:字符串t已存在。
          操作结果:返回串t中的元素个数,称为串长。
        SubString (s, pos, len, sub)
          初始条件:串s, 已存在, 1≦pos≦StrLength(s)且 0≦len≦StrLength(s) –pos+1。
          操作结果:用sub返回串s的第pos个字符起长度为len的子串。
        ……
      } ADT  String

      串的存储表示在计算机中可以分为三类:

    • 定长顺序存储表示:将串定义成字符数组,利用串名可以直接访问串值。用这种表示方式,串的存储空间在编译时确定,其大小不能改变。
    • 堆分配存储表示:仍然用一组地址连续的存储单元来依次存储串中的字符序列,但串的存储空间是在程序运行时根据串的实际长度动态分配的。
    • 块链存储方式:是一种链式存储结构表示。
  • 相关阅读:
    opencv获取网络相机的图像-不用sdk
    openpose开发(1)官方1.5版本源码编译
    Anaconda3(5-1)程序编辑器 自带的spyder
    Anaconda3(5-2)程序编辑器 win10下PyCharm安装及配置Pytorch流程
    Anaconda3(4)安装pytorch
    (0)资料收集
    mock以及特殊场景下对mock数据的处理
    shell编程中的控制判断语句
    shell相关知识点
    React (native) 相关知识
  • 原文地址:https://www.cnblogs.com/mohanchen/p/9311842.html
Copyright © 2011-2022 走看看