首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >串的抽象类型数据的设计

串的抽象类型数据的设计

原创
作者头像
用户7737280
修改2021-11-10 16:03:43
修改2021-11-10 16:03:43
4460
举报

线性表:更关注单个元素的操作,如查找一个元素,插入或删除一个元素。串:更多是查找子串位置、得到指定位置子串、替换子串等操作。

定义:用节点保存串的数据。

若一个结点存放一个字符,会存在很大的空间浪费。

故串的链式可以一个结点放多个字符,最后一个结点若不满,可用#或其他非串值字符补全。(每个节点固定长度)

  • str_assign(t, *cahrs); 生成一个其值等于字符串常量 chars 的串 t。
  • str_copy(t, s); 串 s 存在,由串 s 复制得到串 t 中。
  • str_clear(s);清空串str_empty(s); 判断串是否空。
  • str_length(s); 串的长度。
  • str_compare(s, t); 若 s>t,返回 >0 , 若 s=t ,返回 0 ,若 s<t ,返回 <0。
  • str_concat(t, s1, s2); 合并 s1 和 s2,通过 t 返回。
  • str_get_sub(t, s, pos, len); 在串 s 中从 pos 点开始截取最大 len 的长度,通过 t 返回。
  • str_index(s, t, pos); 在主串 s 的 pos 位置起查找子串 t 并返回起始子串起始位置,没有则返回 0。
  • str_replace(s, t, v); 在主串 s 中查找子串 t,并用串 v 代替。

定义:用一组地址连续的存储单元来存储串中的字符序列。

按照预定义大小,为每个定义的串分配一个固定长度的存储区,一般用定长数组来定义。

一般可以将实际的串长值保存在数组的 0 下标位置,或者在数组的最后一个下标位置。

但有的语言规定在串值后面加一个不计入串长度的结束标记符号“\0”来表示串值的终结(但占用一个空间)。

由于过于不便,串的顺序存储操作有一些变化:串值的存储空间可在程序执行过程中动态分配而得

  • 比如堆:可由 c 语言动态分配函数 malloc() 和 free()来管理。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档