数据结构总结 之 字符串

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Albert_Bolt/article/details/82356616

字符串

定义
  • 字符串是 n ( >= 0 ) 个字符的有限序列
  • 记作 S:“c1c2c3…cn”,S 是串名字,“c1c2c3…cn”是串值,ci是串中字符,n是串的长度。
串的表示
  • 定长顺序存储表示:用一组地址连续的存储单元存储串值的字符序列。
  • 堆分配存储表示:在C语言中用malloc()和free()来管理。
  • 块链存储表示:用链表存储串,每个结点存储串的n个字符,当串长不是n的整数倍时最后一个结点剩余位置用空字符#补齐。
    • 优点是便于连接操作。
    • 缺点是占用存储量大,操作复杂。
操作
  • 生成串:S.ch=(char*)malloc(sizeof(char))
  • 在串A中插入串B
  • 求串长度:S.length()
  • 比较两个串:比较串的长度和字符的大小
  • 清空串:串的长度设为0 free(S.ch); S.ch=NULL; S.length=0;
  • 提取子串:串S中从pos位置起长度为len的子串,如果len>=0,len<=S.length-pos+1,1 =< pos <= S.length,把这些位置的值复制到目标串
串的模式匹配
  • 目标:在串中寻找子串(第一个字符)在串中的位置
  • 模式:在模式匹配中,子串称为模式,串称为目标。
  • 示例:目标 T : “Beijing”
              模式 P : “jin”
              匹配结果 = 3
  • KMP算法

猜你喜欢

转载自blog.csdn.net/Albert_Bolt/article/details/82356616