数据结构中,字符串要单独用一种存储结构来存储,称为串存储结构。这里的串指的就是字符串。

严格意义上讲,串存储结构也是一种线性存储结构,因为字符串中的字符之间也具有"一对一"的逻辑关系。只不过,与之前所学的线性存储结构不同,串结构只用于存储字符类型的数据。

无论学习哪种编程语言,操作最多的总是字符串。数据结构中,根据串中存储字符的数量及特点,对一些特殊的串进行了命名,比如说:

  • 空串:存储 0 个字符的串,例如 S = ""(双引号紧挨着);
  • 空格串:只包含空格字符的串,例如 S = "     "(双引号包含 5 个空格);
  • 子串和主串:假设有两个串 a 和 b,如果 a 中可以找到几个连续字符组成的串与 b 完全相同,则称 a 是 b 的主串,b 是 a 的子串。例如,若 a = "shujujiegou",b = "shuju",由于 a  中也包含 "shuju",因此串 a 和串 b 是主串和子串的关系;

需要注意的是,空格串和空串不同,空格串中含有字符,只是都是空格而已。另外,只有串 b 整体出现在串 a 中,才能说 b 是 a 的子串,比如 "shujiejugou" 和 "shuju" 就不是主串和子串的关系。

另外,对于具有主串和子串关系的两个串,通常会让你用算法找到子串在主串的位置。子串在主串中的位置࿰

串是什么,串存储结构及其实现(无师自通)相关推荐

  1. Python 数据结构 之 串 的链式存储结构

    本文所采用的数据结构模板为 <数据结构教程>C语言版,李春葆.尹为民等著. 改篇所涉及到的是 串 的链式存储结构. 用Python仿照C语言来实现. 文章转载请注明:  Python 数据 ...

  2. c语言单链表存储字符串,串的块链存储结构(C语言)详解

    ,指的是使用 本节实现串的块链存储使用的是无头节点的单链表.当然根据实际需要,你也可以自行决定所用链表的结构(shujujiegou,该链表各个节点中可存储 1 个字符: 图 1 各节点仅存储 1 个 ...

  3. 串--串的定义,顺序、链式存储结构,BF、KMP模式匹配算法(C语言描述)

    此文章仅作为自己学习过程中的记录和总结,同时会有意地去用英文来做笔记,一些术语的英译不太准确,内容如有错漏也请多指教,谢谢! 一.串(String)的定义: 串(String):由零个或多个字符组成的 ...

  4. 数据结构笔记(十三)-- 串的堆分配存储表示

    串的堆分配存储表示 一.堆分配存储概述 堆分配内存仍是一组地址连续的存储单元来存放串值字符序列,但是存储空间实在程序执行过程中动态分配而得.在C语言中,存在一个称为"堆"的自由存储 ...

  5. 字符串:1.存储结构

    数据结构中提到的串,即字符串,由 n 个字符组成的一个整体( n >= 0 ).这 n 个字符可以由字母.数字或者其他字符组成. 例如,S = "BEIJING" ,S 代表 ...

  6. 4-2-串的堆存储结构-串-第4章-《数据结构》课本源码-严蔚敏吴伟民版

    课本源码部分 第4章  串 - 堆串 --<数据结构>-严蔚敏.吴伟民版        源码使用说明  链接☛☛☛ <数据结构-C语言版>(严蔚敏,吴伟民版)课本源码+习题集解 ...

  7. (王道408考研数据结构)第四章串-第一节:串的定义和基本操作及存储结构

    文章目录 一:串基本概念 (1)串的定义 (2)相关术语 (3)串的基本操作 二:串的比较 三:字符集编码 四:串的存储结构 (1)串的顺序存储 (2)串的链式存储 一:串基本概念 (1)串的定义 串 ...

  8. 4-3-串的块链存储结构-串-第4章-《数据结构》课本源码-严蔚敏吴伟民版

    课本源码部分 第4章  串 - 块链串 --<数据结构>-严蔚敏.吴伟民版        源码使用说明  链接☛☛☛ <数据结构-C语言版>(严蔚敏,吴伟民版)课本源码+习题集 ...

  9. 堆分配存储结构串的实现|C++

    堆分配存储结构串的实现方法是,提供一个足够大的存储空间.作为串的可利用空间,用来存储各串的串值. 每当建立一个新的串时,系统就从这个空间划分出一个大小和新串相同的空间给新串 若分配成功则返回一个指向起 ...

最新文章

  1. linux的mount(挂载)命令详解
  2. 打造高端网站应该具备哪些品质?
  3. [家里蹲大学数学杂志]第254期第五届[2013年]全国大学生数学竞赛[数学类]试题
  4. WSS 3.0 Object Model
  5. maven 打包jar lib
  6. Windows下怎样使用bat设置Redis和Nginx开机自启动
  7. ANDROID 开发常用的框架、工具、API最全集合
  8. 机器学习之基于Fisher线性分类器实现多类人脸的识别
  9. myeclipse中配置maven
  10. SQL本地事务、asp.net事务、DTC
  11. 多线程和高并发的区别
  12. python 趣味编程课_Python趣味编程公益课开班,期待你的到来~
  13. Android-Glide清除缓存图片
  14. android仿IT之家、炫酷水波纹、Kotlin MVP项目、后台模拟点击、蜂巢迷宫小游戏等源码
  15. 走近棒球运动·亚特兰大勇士队·MLB棒球创造营
  16. 浏览器打开HTML页面(UTF-8编码)是总是乱码
  17. 解释@Transactional注解的用法
  18. 利盟linux驱动下载,利盟Lexmark X342n 驱动下载
  19. 论文解读(NWR)《Graph Auto-Encoder via Neighborhood Wasserstein Reconstruction》
  20. 免费申请使用IBM Cloud Lite(轻量套餐) 详细教程指南

热门文章

  1. RHEL认证:RHCE
  2. 2022年RHCE认证考题解析最新版—RH294环境
  3. stax java_如何使用StaX
  4. access日历_MS Access日历-概述
  5. pb 制作登陆界面连接数据库
  6. 分布式文件存储--MongoDB
  7. 外网怎么连接校园网的GPU服务器
  8. 测试用例出错重跑--flaky插件
  9. 《Deep Learning for Computer Vision withPython》阅读笔记-StarterBundle(第18 - 23章)
  10. 重启d3d11篇02_初始化d3d11