数据结构实践项目——串
来源:互联网 发布:ubuntu打开u盘命令 编辑:程序博客网 时间:2024/05/21 07:04
本文针对数据结构基础系列网络课程(4):串。
1. 串的基本概念及导学
2. 串的顺序存储及其基本操作实现
3. 串的顺序存储应用
4. 串的链式存储及其基本操作实现
5. 串的模式匹配(Brute-Force算法)
6. 串的模式匹配(KMP算法)
【项目1 - 建立顺序串的算法库】
定义顺序串的存储结构,实现其基本运算,并完成测试。
要求:
1、头文件sqString.h中定义数据结构并声明用于完成基本运算的函数。对应基本运算的函数包括:
void StrAssign(SqString &s,char cstr[]); //字符串常量cstr赋给串svoid StrCopy(SqString &s,SqString t); //串t复制给串sbool StrEqual(SqString s,SqString t); //判串相等int StrLength(SqString s); //求串长SqString Concat(SqString s,SqString t); //串连接SqString SubStr(SqString s,int i,int j); //求子串SqString InsStr(SqString s1,int i,SqString s2); //串插入SqString DelStr(SqString s,int i,int j) ; //串删去SqString RepStr(SqString s,int i,int j,SqString t); //串替换void DispStr(SqString s); //输出串
2、在sqString.cpp中实现这些函数
3、在main函数中完成测试,包括如下内容:
(1)建立串s:abcdefghijklmn和串s1:123
(2)输出串s和s1
(3)输出串s的长度
(4)在串s的第9个字符位置插入串s1而产生串s2
(5)输出串s2
(6)删除串s第2个字符开始的5个字符而产生串s2
(7)输出串s2
(8)将串s第2个字符开始的5个字符替换成串s1而产生串s2
(9)输出串s2
(10)提取串s的第2个字符开始的10个字符而产生串s3
(11)输出串s3
(12)将串s1和串s2连接起来而产生串s4
(13)输出串s4
[参考解答]
【项目2 - 建立链串的算法库】
定义链串的存储结构,实现串的基本运算,并完成测试。
具体要求参照项目1。
[参考解答]
【项目3-顺序串算法】
采用顺序存储方式存储串,实现下列算法并测试:
(1)试编写算法实现将字符串S中所有值为c1的字符换成值为c2的字符:
void Trans(SqString *&s, char c1, char c2);
(2)试编写算法,实现将已知字符串所有字符倒过来重新排列。如ABCDEF改为FEDCBA。 void Invert(SqString &s)
(3)从串s中删除其值等于c的所有字符。如从message中删除’e’,得到的是mssag。
void DellChar(SqString &s, char c)
(4)有两个串s1和s2,设计一个算法求一个这样的串,该串中的字符是s1和s2中公共字符。所谓公共子串,是由在s1中有,且在s2中也有的字符构成的字符。例s1为”message”,s2为”agent”,得到的公共子串是”eage”。 SqString CommChar(SqString s1,SqString s2);
[参考解答]
【项目4-字符串加密】
一个文本串可用事先编制好的字符映射表进行加密。例如,设字符映射表为:
abcdefghijklmnopqrstuvwxyz ngzqtcobmuhelkpdawxfyivrsj
则字符串“lao he jiao shu ju jie gou”被加密为“enp bt umnp xby uy umt opy”。
设计一个程序,实现加密、解密算法,将输入的文本进行加密后输出,然后进行解密并输出。
[参考解答]
【项目5 - 计数的模式匹配】
采用顺序结构存储串,编写一个算法计算指定子串在一个字符串中出现的次数,如果该子串不出现则为0。
提示:无论BF模式匹配算法,还是KMP算法,都是在找到子串substr后就退出了。解决这个问题,要查找完整个字符串,并将出现的次数记下来。改造这两个算法吧。
[参考解答]
- 数据结构实践项目——串
- 数据结构实践项目——顺序表
- 数据结构实践项目——链表
- 数据结构实践项目——栈
- 数据结构实践项目——队列
- 数据结构实践项目——排序
- 数据结构实践项目——外部排序
- 数据结构实践项目——文件
- 数据结构 实践项目——数据结构、算法、程序设计
- 第八周 数据结构实践项目——串 【项目1 - 建立顺序串的算法库】
- 第八周 数据结构实践项目——串 【项目1 - 建立顺序串的算法库
- 第八周 数据结构实践项目——串 【项目2 - 建立链串的算法库】
- 第八周 数据结构实践项目——串【项目4-字符串加密】
- 数据结构实践项目——数组和广义表
- 数据结构实践项目——树和二叉树
- 数据结构实践项目——查找(一)
- 数据结构实践项目——查找(二)
- 数据结构实践项目——查找(一)
- 欢迎使用CSDN-markdown编辑器
- linux(centos)下非root用户执行管理命令
- poj2488
- C语言初学记录
- yum源配置
- 数据结构实践项目——串
- 深入探讨Java的类加载机制
- LXT6架构-linux-x/arch/arm/下的故事(回顾)
- OpenCV3.0.0在VS2013中的配置(Win7_32位)
- 深入浅出MFC学习笔记4--简单而完整:MFC骨干程序
- 排序算法
- 记惠普javaweb实训周之版本控制系统的实践
- 安卓手机烧内存卡(就是内存卡损坏)的补救办法
- java传入相关的时间可以获取这个时间段的星期时间