DataStructure_5.String

2024-03-09 09:58
文章标签 string datastructure

本文主要是介绍DataStructure_5.String,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

5.1

5.1.1 串即字符串,由零个或多个字符组成的有限(有限指串的长度n是有限数值)序列,一般记为s="a1a2a3…an"(n≥0),注意引号不属于串的内容ai(1≤i≤n)可以是字母,数字或其他字符,i就是该字符在串中的位置。n称为串的长度。零个字符的串称为空串(null string),长度为零,可以直接用双引号表示"""",也可以用空集符号Ф表示,串的相邻字符之间具有前驱与后继的关系。

5.1.2

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

子串在主串中的位置就是子串的第一个字符在主串中的序号。比如loverlovefriendend就是主串和子串的关系。

5.2串的比较

当两个串s="a1a2a3…an"t="b1b2b3…bm"不相等时,规定s<t在满足

n<mai=bi时,如s="hap",t="happy"时,有s<t,因为ts多两个字母

存在某个k≤min(m,n),使得ai=biak<bk,如s="happen",t="happy"时,两串前4个字母均相同,而两串第5个字母(k),字母eASCⅡ码101<字母yASCⅡ码121所以s<t

两个条件之一时成立

5.3串的存储结构

5.3.1 串的顺序存储结构

一般使用定长数组来定义,串的实际长度可以保存在数组下标0的位置也可以保存在最后一个下标位置,也可以像c/c++那样在串后面接一个"\0"来表示串的终结,这时串的长度跑一个遍历就知道了。

但定长数组不可避免的会遇到一个问题,在字符串的操作中(比如两串的连接,新串的插入,字符串的替换),都有可能使得数组长度爆掉。所以可以使用一个叫做""的动态存储区(可通过C中的malloc()free()来管理)来创立动态数组,解决定长数组的弊端。

5.3.2 串的链式存储结构

本身与线性表是相似的,但由于串结构的特殊性,一个结点可以考虑存放多个字符,当最后一个结点若是未被占满,可以用"#"或其他非串值字符补全。至于一个结点存放多少字符合适,就需要根据实际情况来选择。</

这篇关于DataStructure_5.String的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/790323

相关文章

Java获取当前时间String类型和Date类型方式

《Java获取当前时间String类型和Date类型方式》:本文主要介绍Java获取当前时间String类型和Date类型方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录Java获取当前时间String和Date类型String类型和Date类型输出结果总结Java获取

java String.join()方法实例详解

《javaString.join()方法实例详解》String.join()是Java提供的一个实用方法,用于将多个字符串按照指定的分隔符连接成一个字符串,这一方法是Java8中引入的,极大地简化了... 目录bVARxMJava String.join() 方法详解1. 方法定义2. 基本用法2.1 拼接

Java字符串处理全解析(String、StringBuilder与StringBuffer)

《Java字符串处理全解析(String、StringBuilder与StringBuffer)》:本文主要介绍Java字符串处理全解析(String、StringBuilder与StringBu... 目录Java字符串处理全解析:String、StringBuilder与StringBuffer一、St

Java String字符串的常用使用方法

《JavaString字符串的常用使用方法》String是JDK提供的一个类,是引用类型,并不是基本的数据类型,String用于字符串操作,在之前学习c语言的时候,对于一些字符串,会初始化字符数组表... 目录一、什么是String二、如何定义一个String1. 用双引号定义2. 通过构造函数定义三、St

Java中的String.valueOf()和toString()方法区别小结

《Java中的String.valueOf()和toString()方法区别小结》字符串操作是开发者日常编程任务中不可或缺的一部分,转换为字符串是一种常见需求,其中最常见的就是String.value... 目录String.valueOf()方法方法定义方法实现使用示例使用场景toString()方法方法

C#数据结构之字符串(string)详解

《C#数据结构之字符串(string)详解》:本文主要介绍C#数据结构之字符串(string),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录转义字符序列字符串的创建字符串的声明null字符串与空字符串重复单字符字符串的构造字符串的属性和常用方法属性常用方法总结摘

如何解决mysql出现Incorrect string value for column ‘表项‘ at row 1错误问题

《如何解决mysql出现Incorrectstringvalueforcolumn‘表项‘atrow1错误问题》:本文主要介绍如何解决mysql出现Incorrectstringv... 目录mysql出现Incorrect string value for column ‘表项‘ at row 1错误报错

java String.join()的使用小结

《javaString.join()的使用小结》String.join()是Java8引入的一个实用方法,用于将多个字符串按照指定分隔符连接成一个字符串,本文主要介绍了javaString.join... 目录1. 方法定义2. 基本用法2.1 拼接多个字符串2.2 拼接集合中的字符串3. 使用场景和示例3

C# string转unicode字符的实现

《C#string转unicode字符的实现》本文主要介绍了C#string转unicode字符的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随... 目录1. 获取字符串中每个字符的 Unicode 值示例代码:输出:2. 将 Unicode 值格式化

Java中String字符串使用避坑指南

《Java中String字符串使用避坑指南》Java中的String字符串是我们日常编程中用得最多的类之一,看似简单的String使用,却隐藏着不少“坑”,如果不注意,可能会导致性能问题、意外的错误容... 目录8个避坑点如下:1. 字符串的不可变性:每次修改都创建新对象2. 使用 == 比较字符串,陷阱满