欢迎来到天天文库
浏览记录
ID:55721686
大小:406.50 KB
页数:24页
时间:2020-06-01
《数据结构(c语言描述) 教学课件 作者 库波 第4章 串.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、数据结构(C#)主编:库波第4章串4.1串的基本概念4.2串的存储结构4.3串的基本运算及其实现4.1串的基本概念定义应用程序中使用最频繁的类型是字符串。字符串简称串,是一种特殊的线性表,其特殊性在于串中的数据元素是一个个的字符。字符串在计算机的许多方面应用很广。汇编和高级语言的编译程序中的源程序和目标程序。事务处理程序中,顾客的信息如姓名、地址等及货物的名称、产地和规格等。串的基本概念串(String)由n(n≥0)字符组成的有限序列。S=”c1c2…cn”(n≥0)当n=0时,称为空串。串中任意个连续的字符组成的子序列称为该串的子串。包含字串的串相应地称为
2、主串。通常把子串的第一个字符在主串中的位置称为子串的位置。串s1”abcdefg”,它的长度是7串s2”cdef”的长度是4,s2是s1的字串,s2的位置是3。如果两个串的长度相等并且对应位置的字符都相等,则称这两个串相等。4.2串的存储结构由于串中的字符都是连续存储的,而在C#中串具有恒定不变的特性,即字符串一经创建,就不能将其变长、变短或者改变其中任何的字符。把串看作是一个类,类名为StringDS。取名为StringDS是为了和C#自身的字符串类String相区别。字段data,存放串中字符序列的数组。4.3串的基本运算及其实现求串长通过求数组data的
3、长度来串的长度:publicintLength{get{returndata.Length;}}串比较如果两个串的长度相等并且对应位置的字符相同,则串相等返回0;如果串s对应位置的字符大于该串的字符或者如果串s的长度大于该串,而在该串的长度返回内二者对应位置的字符相同,则返回-1,该串小于串s;其余情况返回1,该串大于串s。publicintCompare(StringDSs){intlen=Length<=s.Length?Length:s.Length;inti=0;for(i=0;i4、if(i<=len){if(this[i]s[i]){return1;}}elseif(Length==s.Length){return0;}elseif(Length5、6、(index>Length–1)7、8、(len<0)9、10、(len>Length11、–index)){Console.WriteLine("PositionorLengthiserror!");returnnull;}StringDSs=newStringDS(len);for(inti=0;i12、th;++i){s1.data[i]=this[i];}for(intj=0;j13、h;intlen2=len+Length;StringDSs1=newStringDS(len2);if(index<014、15、index>Length-1){Console.WriteLine("Positioniserror!");returnnull;}for(inti=0;i16、第index位置起连续的len个字符的
4、if(i<=len){if(this[i]s[i]){return1;}}elseif(Length==s.Length){return0;}elseif(Length5、6、(index>Length–1)7、8、(len<0)9、10、(len>Length11、–index)){Console.WriteLine("PositionorLengthiserror!");returnnull;}StringDSs=newStringDS(len);for(inti=0;i12、th;++i){s1.data[i]=this[i];}for(intj=0;j13、h;intlen2=len+Length;StringDSs1=newStringDS(len2);if(index<014、15、index>Length-1){Console.WriteLine("Positioniserror!");returnnull;}for(inti=0;i16、第index位置起连续的len个字符的
5、
6、(index>Length–1)
7、
8、(len<0)
9、
10、(len>Length
11、–index)){Console.WriteLine("PositionorLengthiserror!");returnnull;}StringDSs=newStringDS(len);for(inti=0;i12、th;++i){s1.data[i]=this[i];}for(intj=0;j13、h;intlen2=len+Length;StringDSs1=newStringDS(len2);if(index<014、15、index>Length-1){Console.WriteLine("Positioniserror!");returnnull;}for(inti=0;i16、第index位置起连续的len个字符的
12、th;++i){s1.data[i]=this[i];}for(intj=0;j13、h;intlen2=len+Length;StringDSs1=newStringDS(len2);if(index<014、15、index>Length-1){Console.WriteLine("Positioniserror!");returnnull;}for(inti=0;i16、第index位置起连续的len个字符的
13、h;intlen2=len+Length;StringDSs1=newStringDS(len2);if(index<0
14、
15、index>Length-1){Console.WriteLine("Positioniserror!");returnnull;}for(inti=0;i16、第index位置起连续的len个字符的
16、第index位置起连续的len个字符的
此文档下载收益归作者所有