数据结构总结 之 字符串

字符串

定义
  • 字符串是 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算法
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值