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

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

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新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()
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • chrome frame使用记录「建议收藏」

    chrome frame使用记录「建议收藏」chromeframe使用记录参考:http://blog.csdn.net/xiaoyu411502/article/details/12619881http://www.cystc.org/?p=259…

  • adminLTE模态框弹出页面样例[通俗易懂]

    adminLTE模态框弹出页面样例[通俗易懂]项目中引用adminLTE前端框架,弹出页面是模态框方法,下面是某个detail.html文件<divclass=”modalfade”id=”viewDialog”role=”viewDialog”aria-hidden=”true”><divclass=”modal-dialogmodal-full”>&l…

  • 华为防火墙usg6000配置dhcp(华为交换机与防火墙互联配置)

    该场景,防火墙作为出口访问internet,然后接的傻瓜式交换机来连接下面的办公PC,属于一个简单的SOHO环境,一般在防火墙上面应用DHCP,也通常是这种情况,大点的环境则是交换机或者专门的DHCP服务器来做。1、防火墙初始化配置2、DHCP配置(基于全局的配置方式)3、防火墙策略+NAT配置,让下面PC能够访问Internet。4、测试1、防火墙初始化配置…

  • 理查德•弗曼学习法思维导图-程序猿学习法

    理查德•弗曼学习法思维导图-程序猿学习法理查德•弗曼学习法思维导图-程序猿学习法

  • zookeeper入门(1)「建议收藏」

    zookeeper入门(1)「建议收藏」zookeeper应用场景zookeeper特点zookeeper数据模型Ubuntu配置zookeeper是一个典型的分布式数据一致性解决方案,致力于为分布式应用提供一个高性能,高可用,且具有严格顺序访问控制能力的分布式协调存储服务应用场景维护配置信息分布式锁服务集群管理生成分布式唯一ID维护配置信息如java编程经常遇到配置项,比如数据路连接的url,password等等。通常这些配置文件需要放在服务器上,但需要更改配置文件的时候需要去服务器上更改。但是随着分布式系统的兴起,由于

  • win10关闭端口占用[通俗易懂]

    win10关闭端口占用[通俗易懂]查看win10所有占用端口公式:查看所有:netstat-ano查看对应端口:netstat-ano|findstr"9004"关闭端口:任务管理器中的详细信息对应的PID就是占用的端口关闭即可命令行关闭端口:taskkill-PID进程号-F进程号为19216…

发表回复

您的电子邮箱地址不会被公开。

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