数据结构里的串是什么东西?[通俗易懂]

数据结构里的串是什么东西?[通俗易懂]上个月终于把栈和队列专题完成了,其实从开始到现在,我们主要学到的东西其实就是数组与链表的各种变种。那么这个月开始,我们轻松点,学习些别的东西。那么开启新的专题:串。上个月终于把栈和队列专题完成了,其

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

  • 上个月终于把栈和队列专题完成了,其实从开始到现在,我们主要学到的东西其实就是数组与链表的各种变种。那么这个月开始,我们轻松点,学习些别的东西。那么开启新的专题:串。

早先的计算机在被发明时,主要作用是做一些科学和工程的计算工作,也就是现在我们理解的计算器,只不过它比小小计算器功能更强大、速度更快一些。后来发现,在计算机上作非数值处理的工作越来越多,使得我们不得不需要引入对字符的处理。于是就有了字符串的概念。

比如我们现在常用的搜索引擎,当我们在文本框中输入“简明 现代”时,它已经把我们想要的“简明现代魔法”列在下面了(联想词)。显然这里网站作了一个字符串査找匹配的工作:

数据结构里的串是什么东西?[通俗易懂]

今天我们就是来研究“串”这样的数据结构。先来看定义。

串(string)是由零个或多个宇符组成的有限序列,又名叫字符串。

一般记为s = “a,a2……an” (n>0),其中,s是串的名称,用双引号(有些书中也用单引号)括起来的字符序列是串的值,注意单引号不属于串的内容。ai(1<= i<= n)可以是字母、数字或其他字符,i就是该字符在串中的位置。串中的字符数目n称为串的长度,定义中谈到“有限”是指长度n是一个有限的数值。零个字符的串称为空串(null string),它的长度为零,可以直接用两双引号一表示,也可以用希腊Φ字母来表示。所谓的序列,说明串的相邻字符之间具有前驱和后继的关系。

一些特别的字符串

还有一些概念需要解释。

空格串,是只包含空格的。注意它与空串的区别,空格串是有内容有长度的,而且可以不止一个空格。

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

子串在主串中的位置就是子串的第一个字符在主串中的序号。

  •  
    比如在英语单词中,即使是friend也有个end,即使是believe也有个lie。

这里的”end”, “lie”其实可以认为是”friend”、”believe”这些单词字符串的子串。

比起前面说到的链表,串简单吧?先难后易,是一种很好的学习方法。

延伸阅读

此文章所在专题列表如下:

  1. 数据结构里的串是什么东西?
  2. 如何比较串的大小
  3. 串的抽象数据类型ADT
  4. 串的顺序存储结构
  5. 串最基本的5个操作的C实现
  6. 寻找子串在主串中的位置
  7. 如何在串中插入串
  8. 如何在串中删除特定长度的子串
  9. 字符串中的子串替换
  10. 题外话:谈谈malloc()和free()
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/167060.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • controller是什么意思_Controller注解

    controller是什么意思_Controller注解一、简介在SpringMVC 中,控制器Controller 负责处理由DispatcherServlet 分发的请求,它把用户请求的数据经过业务处理层处理之后封装成一

    2022年8月5日
    11
  • Hadoop-Shuffle洗牌过程,与combine和partition的关系「建议收藏」

    Hadoop-Shuffle洗牌过程,与combine和partition的关系「建议收藏」Hadoop-Shuffle洗牌过程,与combine和partition的关系

    2022年4月23日
    71
  • 阿姨想让13岁的儿子学Java编程,我拒绝了

    阿姨想让13岁的儿子学Java编程,我拒绝了大家好,我是锋哥;先爆丑照,为了你们有勇气继续阅读下去;前一段时间,有个阿姨找我学java,我懵逼了。我以为阿姨学着玩玩的,我就同意了。她说过段时间找我报名;后来,阿姨又找我阿姨想让她13岁的儿子跟我学编程,我想了下13岁应该六年级或者初一,不正是学习科学文化基础知识的时候吗。我这人有原则,有底线,也不想坑人,孩子太小,应用编程真不适合,也会耗费大量的时间和精力,耽误学业。孩子学应用编程前,应该至少有初中毕业文化,计算机简单基础,英语基础,应用软件基础,如果可以,还需要了解计算机组成原

    2022年4月30日
    55
  • nfc手机与手机数据传输_iphone数据传输已取消

    nfc手机与手机数据传输_iphone数据传输已取消我正在尝试为医院开发Android应用程序.在该系统中,需要使用NFC技术将存储在Android手机中的数据库中的患者信息获取到台式计算机中.无论如何我在哪里可以使用NFCUSB读取设备(ACR122UNFC智能卡读卡器RFID编写器5MifareUSB)将数据从手机传输到我的台式电脑?真实情况是,在医院,当一个人想要获得一些测试结果时,他将到达柜台并将移动设备放置在安装在柜台上的NFC读…

    2022年9月17日
    0
  • python读取excel单元格内容_python如何读取文件夹下的所有文件

    python读取excel单元格内容_python如何读取文件夹下的所有文件1.使用python内建的open()方法读取文本相对路径:example/ex2.txt,文件内容如下所示:测试内容,路径和内容,大家可根据自己心情设置。使用open()方法读取:print(‘—-使用python自带的open()读取文件—–‘)path=r’example/ex2.txt’frame=open(path)print(frame.readlines())此时,执行结果报错如下:我猜测open()方法的…

    2022年10月2日
    0
  • navicat15.0.23.0激活码【2021.10最新】

    (navicat15.0.23.0激活码)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html1STL5S9V8F-eyJsa…

    2022年3月27日
    56

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号