关闭

《算法学习与数据结构》part2 算法分析与数据结构之串

标签: 数据结构算法
402人阅读 评论(0) 收藏 举报
分类:

part2 算法分析与数据结构之串

1、又称为字符串,是一种特殊的线性表。串(string)(或字符串)是由零个或多个字符组成的有限序列。串中字符的数目n称为串的长度。零个字符的串称为空串(null string),它的长度为零。

串中任意个连续的字符组成的子序列称为该串的子串。包含字串的串相应地称为主串。通常称字符在序列中的序号为该字符在串中的位置

2.空串:不含任何字符的串称为空串,它的长度n=0,记为s=“”。
3.空白串:含有一个或多个空格的串,称为空白串,它的长度是串中空格字符的个数,记为s= “?”。注意与空串的区别。

在非数值处理(如在信息检索、文本编辑、机器翻译等)中有着广泛的应用,已成为数据处理领域最重要的数据类型之一。目前的高级语言大都引入了串的数据类型,并且建立了关于串运算和处理的基本函数和过程。
4、串变量和串常量
 通常在程序中使用的串可分为:串变量和串常量。
(1)串变量:串变量和其它类型的变量一样,其取值是可以改变的。
(2)串常量:串常量和整常数、实常数一样,在程序中只能被引用但不能改变其值。即只能读不能写。
  ①串常量由直接量来表示的
【例】Error("overflow")中"overflow"是直接量。
  ②串常量命名
  有的语言允许对串常量命名,以使程序易读、易写。
【例】C++中,可定义串常量path
const char path[]="dir/bin/appl";

5、串的实际长度可以在这预定义长度范围内随意,超过预定义长度的串值则被舍去,称之为“截断”。

串长有两种表示方法:一是如上定义描述的那样,以下标为0的数组分量存放串的实际长度,如PCSCAL语言中的串类型采用这种表示方法;二是在串值后面加一个不计入串长的结束标记字符,如在C语言中以“\0”表示串值的终结。此时的串长隐含值,显然不便于进行某些串操作。

6、SString:数据结构中SString是定长顺序存储表示,所第一个S应是顺序的意思,第二个就string中的S。

7、文本编辑的实质是修改字符数据的形式或格式。虽然各种文本编辑程序的功能强弱不同,但是其基本操作是一致的,一般都包括串的查找、插入和删除等基本操作。为了编辑的方便,用户可以利用换页符和换行符把文本划分为若干页,每页有若干行(当然,也可以不分页而把文件直接划成若干行)。我们可以把文本看成是一个字符串,称为文本串。页则是文本串的字串,行又是页的字串。

0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

浅谈数据结构与算法分析学习及如何进行算法分析

前言都说数据结构与算法分析是程序员的内功,想要理解计算机世界就不能不懂点数据结构与算法,然而这也备受争议,因为大多数的业务需求都用不上数据结构与算法,又或者说已经有封装好的库可以直接调用,例如Java...
  • github_37022917
  • github_37022917
  • 2017-01-26 21:54
  • 1510

数据结构与算法分析 c++描述 读书笔记(1)

开卷有益,多多益善。由于过年期间学习了下python,再加上之后又在看图像处理和机器学习的东西,c++几乎荒废了,所以抽空就拜读下这本经典的书。网上找的书皮: 把博客当读书笔记了,不然曾经写的好几本的...
  • y277an
  • y277an
  • 2016-04-28 19:33
  • 414

数据结构与算法专题之串——字符串及KMP算法

本章是线性表的最后一部分——串。其实串就是我们日常所说的字符串,它是一系列结点组成的一个线性表,每一个结点存储一个字符。我们知道C语言里并没有字符串这种数据类型,而是利用字符数组加以特殊处理(末尾加'...
  • ShannonNansen
  • ShannonNansen
  • 2017-07-29 23:21
  • 558

数据结构例程——串的模式匹配(KMP算法)

问题:串的模式匹配 KMP算法:#include #include "sqString.h" void GetNext(SqString t,int next[]) /*由模式串t求出next值...
  • sxhelijian
  • sxhelijian
  • 2015-10-07 15:50
  • 2409

数据结构Java实现——③串--->串的模式匹配:Brute-Force算法和 KMP算法

KMP模式匹配算法 在Brute-Force算法的基础上进行了改进,改进后的算法,可以在匹配失败后,无需修改记录主串当前比较的字符的下标 i;而且,记录子串当前比较的字符的下标 j也不用清零。而是在...
  • u011446177
  • u011446177
  • 2015-01-18 10:47
  • 860

数据结构和算法学习之路

这篇文章讲了什么? 我这些年学习数据结构和算法的总结。 一些不错的算法书籍和教程。 算法的重要性。 初学 第一次接触数据结构是在大二下学期的数据结构课程。然而这门课程并没有让...
  • a_long_
  • a_long_
  • 2016-03-18 14:29
  • 4181

如何学好数据结构和算法

数据结构和算法是计算机科学中最重要的课程,作为一名Google的软件工程师,我经常看到一些求职者或刚毕业的学生,他们对于数据结构和算法的学习是远远不够的。这不是说他们看的书是有问题的,或教授们教错了内...
  • liuyi1207164339
  • liuyi1207164339
  • 2015-09-09 10:22
  • 1398

《数据结构与算法分析—C语言描述》pdf

下载地址:网盘下载 内容简介 编辑 《数据结构与算法分析:C语言描述(原书第2版)》内容简介:书中详细介绍了当前流行的论题和新的变化,讨论了算法设计技巧,并在研究...
  • cf406061841
  • cf406061841
  • 2017-05-27 18:59
  • 2219

《数据结构与算法分析java语言描述》知识点总结(3-4章)

3. 表、栈、队列 3.1 抽象数据类型(ADT) 表的一些简单操作可以通过使用数组来完成,如果发生对表的一些插入和删除操作,特别是对表的前端进行,那么数组就不是一种很好的选择了,就需要使...
  • sinat_22797429
  • sinat_22797429
  • 2016-11-09 20:23
  • 1330

Java数据结构与算法之学习路线

目录: 1.前言 2.数据结构与算法学习大纲(粗糙) 3.线性结构分类 4.各个线性类型数据结构的特点以及使用场景 5.数组与队列的区别 1.前言: 昨天去面试了一家我觉得薪资和公司文化都不错的公司...
  • qq_28057577
  • qq_28057577
  • 2016-09-28 17:19
  • 5441
    个人资料
    • 访问:153966次
    • 积分:2996
    • 等级:
    • 排名:第13612名
    • 原创:143篇
    • 转载:24篇
    • 译文:1篇
    • 评论:108条
    最新评论