- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构与算法“字符串”教学设计
数据结构与算法 “字符串”教学设计
北京大学信息科学技术学院 赵海燕
1. 字符串在课程中的定位和前测知识点
字符串(String)是零个或多个字符的顺序排列所组成的复合数据结构,是一种特殊的
线性表,其基本组成元素是单个字符。大多数程序设计语言都支持字符串这种数据类型。
字符串一章在主要介绍字符串的的基本概念,字符串的存储表示和类定义,字符串的运
算,侧重于对于字符串的变长特性的处理;在此基础上,重点介绍了字符串的模式匹配。
前测知识点要求如下,可以视情况给学生补充:
(1) ASCII 、UNICODE 等字符编码知识;
(2 ) C/C++程序设计语言中的字符串相关知识。
2.学习目标
(1) 理解字符的编码原则和编码顺序;
(2 ) 熟练掌握字符串的常用运算,理解C++标准串运算的实现以及String 类中如何
处理字符串的变长特性;
(3 ) 学会如何快速进行字符串的模式匹配。
3. 知识点和学时分配
理论授课4 学时,建议安排实验6-8 学时。
以下内容是本课程要求的基本教学内容,在授课中必须完全涵盖,授课时可以根据学生的状
况、教师的科研背景等在某些方面进行扩展和对学生进行引导,以扩大适当学生的涉猎面。
计算机专业的学生可以适当介绍除KMP之外的其他无回溯算法。
各知识点建议授课时间如下:
字符串的基本概念 20 分钟
字符串的存储和实现 60 分钟
字符串模式匹配 150 分钟
4.重点和难点
本章重点包括:
(1) 字符编码;
(2 ) 字符串类class String 的存储结构;
(3 ) 朴素字符串模式匹配算法;
(4 ) 无回溯的KMP 模式匹配算法。
其中,难点在于
(1) 字符串类class String 对于字符串长度变化所作的适应性处理;
(2 ) 特征向量的概念与计算。
5.授课提示
下面是字符串一章的重点和难点内容的讲授注意事项。
(1)字符编码
组成字符串的基本单位是字符,字符可以是所使用的字符集中的数字、文本字符或者特
定的符号。字符在计算机中是通过0、1 组成的字节来表示的,这种表示特定字符集的“字
符”的“字节”即是该字符的编码。
根据要表示的字符集的大小和用途,字符有多种编码方式。常用的编码包括英文的
ASCII 编码,中文的GB2312-80 编码,繁体中文的BIG5 编码,以及通用文字符号编码标准
UNICODE 。
授课时需强调字符编码方式的不同取决于具体的应用需要。字符串是一种元素为字符的
特殊的线性表,字符编码的不同仅仅表示组成线性表的元素不同,并不改变字符串概念和操
作的本质。
(2 )字符串类class String 的存储结构
字符串的一个显著且难以回避的特点是其长度动态变化,选择串的存储结构时需要考虑
串的变长特点。静态长度的顺序存储很难适应诸如串的拼接、查找、置换等运算所导致的串
长度的改变。
Class String 类采用一种动态变长的存储结构来存储字符串,根据运算的需要动态地改
变字符串的长度,使得编程人员摆脱自己维护静态定长数组的重任。
讲授时宜采用字符串赋值或拼接等运算为例来介绍class String 类的存储机制。
(3 )朴素字符串模式匹配算法
本课程中所涉及的字符串模式匹配仅限于精确匹配中的单选情况:给定一个由字符或符
号组成的字符串目标对象T 和一个字符串模式P ,模式匹配的目的是在目标字符串T 中搜索
与模式P 完全相同的子串,并返回T 和P 匹配的第一个子串的首字符位置。
模式匹配的一个简单方法就是把模式P 的字符依次与目标T 的相应字符进行比较。从
首字符开始,依次将两个串对应位置上的字符进行比较。当某次比较失败时,则把模式 P
相对于 T 右移一个字符位置,重新开始下一趟匹配。如此不断重复,直到某趟配串成功返
回;或是比较到目标串的结束也没有出现“配串”的情况,则匹配失败。
授课时需引导学生分析朴素匹配算法的时间代价,并找出其最佳、最差、及平均情况下
的开销,同时引导学生分析和总结朴素算
文档评论(0)