数据结构四.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构四

第4章 4.1 串 案例4.1 模拟“天书密码”的生成和破解 案例说明 天书是一条缠绕在一个圆柱体上的布条,信息纵向写在布条上。解码的过程是将布条解开传送给信息的接收者,接收者有一个同样大小的圆柱体就可以读懂密码。从理论上讲,没有这个圆柱体就不可能读懂密码,因为字母的顺序已经打乱。 案例目的 (1)理解串的有关概念及基本运算,了解串与线性表的关系。 (2)使用串操作函数构造与串相关的算法解决简单的应用问题。 4.1 串 技术要点 以一种顺序将字符串读入一个数组,而以另一种方式输出字符串,从而使信息变得不可理解。 设置明文密文字母映射表: 代码 1.串匹配 typedef char SeqString[27];/*定义串类型*/ /*以下两句设置加密及解密映射表*/ SeqString Original=abcdefghijklmnopqrstuvwxyz; SeqString Cipher =ngzqtcobmuhelkpdawxfyivrsj; int StrMatch( SeqString S,char c) { /*串匹配(子串只有一个字符) */ int i; for (i=0; i strlen(S); i++) { if (c==S[i]) return i; }/*匹配成功,返回位置*/ return -1;/*映射表中没有相应字符*/ } 代码 2.加密 void Encrypt(SeqString Original, SeqString Cipher, char *T) /*加密*/ { int i,m; printf(\n); for (i=0; i strlen(T); i++) { m=StrMatch(Original, T[i]); if(m!=-1) T[i]=Cipher[m]; } printf(a encrypted string : %s,T); } 代码 2.解密 void Decipher(SeqString Original , SeqString Cipher, char* T) /*解密*/ { int i , m ; printf(\n); for (i=0; i strlen(T); i++) { m=StrMatch(Cipher,T[i]); if(m!=-1) T[i]=Original[m]; } printf(a Original String : %s,T); } 相关知识及注意事项 1.串的概念及基本术语 串定义 是字符串的简称,是零个或多个字符组成的有限序列。一般记为: S=s0s1……sn-1 (n≥0) 其中 S是串名; 用双引号(“”)括起的字符序列是串的值; si(0≤I≤n-1)可以是字母、数字或其它符号; 串字符的数目n称为串的长度; 空串 长度为零的串称为空串,它不包含任何字符。 空格串 由空格字符组成的串,它的长度为串中空格字符的个数。 子串与主串 串中任意个连续字符组成的子序列称为该串的子串。包含子串的串称为该子串的主串。 子串的位置 将子串在主串中首次出现时,该子串首字符对应的主串序列中的序号定义为子串在主串中的位置。 串相等 当且仅当两个串的长度相等,并且各个对应位置的字符也都相同,称两个串相等; 例如:有下列四个串a,b,c,d: a1=, a2= , a=BEI, b=JING c=BEIJING, d=BEI JING 2.串的存储表示 (1)串的顺序存储表示 用一组地址连续的存储单元来依次存放串中的字符序列,串中相邻的字符顺序存放在相邻的存储单元中。 ①定长字符数组 使用定长的字符数组存放串,一般使用特殊字符(如‘\0’)放在串值的末尾表示串的结束。 类型定义如下: #define MAXSTRLEN 255 typedef char SString[MAXSTRLEN]; ②带串长的字符数组 类型定义如下: #define MAXSTRLEN 255 typedef stuct{ char Str[MAXSTRLEN]; int length; }SeqString; ③动态字符数组 类型定义如下: typedef stuct{ char *Str; int length; }HString; 3.顺序串基本运算的实现 类型定义如下: typedef stuct{ char *Str; int length; }HSt

文档评论(0)

ipad0d + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档