顺序串算法

本次实践项目要求如下:

采用顺序存储方式存储串,实现下列算法并测试: 
(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);

本次实践所用到的顺序串的算法库点击此处参考(sqString.cpp、sqString.h)

(1)试编写算法实现将字符串S中所有值为c1的字符换成值为c2的字符: 
void Trans(SqString *&s, char c1, char c2);

//*Copyright  (c)2017,烟台大学计算机与控制工程学院*
//*All rights reservrd.*
//*文件名称 :main.cpp*
//*作者:田长航*
//*完成时间:2017年10月19日*
//*版本号:v1.0*
//*问题描述:算法库测试函数*
//*输入描述:无*
//*程序输出:测试结果*
#include <stdio.h>
#include "sqString.h"
void Trans(SqString &s, char c1, char c2)
{int i;for (i=0; i<s.length; i++)if (s.data[i]==c1)s.data[i]=c2;
}int main()
{SqString s;StrAssign(s, "messages");Trans(s, 'e', 'a');DispStr(s);return 0;
}

运行结果截图如下:

(2)试编写算法,实现将已知字符串所有字符倒过来重新排列。如ABCDEF改为FEDCBA。 
void Invert(SqString &s)

//*Copyright  (c)2017,烟台大学计算机与控制工程学院*
//*All rights reservrd.*
//*文件名称 :main.cpp*
//*作者:田长航*
//*完成时间:2017年10月19日*
//*版本号:v1.0*
//*问题描述:算法库测试函数*
//*输入描述:无*
//*程序输出:测试结果*
#include <stdio.h>
#include "sqString.h"
void Invert(SqString &s)
{int i;char temp;for (i=0; i<s.length/2; i++){temp = s.data[i];s.data[i]=s.data[s.length-i-1];s.data[s.length-i-1] = temp;}
}int main()
{SqString s;StrAssign(s, "abcdefg");Invert(s);DispStr(s);return 0;
}

运行结果截图如下:

(3)从串s中删除其值等于c的所有字符。如从message中删除’e’,得到的是mssag。 
void DellChar(SqString &s, char c)

//*Copyright  (c)2017,烟台大学计算机与控制工程学院*
//*All rights reservrd.*
//*文件名称 :main.cpp*
//*作者:田长航*
//*完成时间:2017年10月19日*
//*版本号:v1.0*
//*问题描述:算法库测试函数*
//*输入描述:无*
//*程序输出:测试结果*
#include <stdio.h>
#include "sqString.h"
void DellChar(SqString &s, char c)
{int k=0, i=0;   //k记录值等于c的字符个数while(i<s.length){if(s.data[i]==c)k++;elses.data[i-k]=s.data[i];i++;}s.length -= k;
}int main()
{SqString s;StrAssign(s, "message");DellChar(s, 'e');DispStr(s);return 0;
}

运行结果截图如下:

(4)有两个串s1和s2,设计一个算法求一个这样的串,该串中的字符是s1和s2中公共字符。所谓公共子串,是由在s1中有,且在s2中也有的字符构成的字符。例s1为”message”,s2为”agent”,得到的公共子串是”eage”。 
SqString CommChar(SqString s1,SqString s2);

//*Copyright  (c)2017,烟台大学计算机与控制工程学院*
//*All rights reservrd.*
//*文件名称 :main.cpp*
//*作者:田长航*
//*完成时间:2017年10月19日*
//*版本号:v1.0*
//*问题描述:算法库测试函数*
//*输入描述:无*
//*程序输出:测试结果*
#include <stdio.h>
#include "sqString.h"SqString CommChar(SqString s1,SqString s2)
{SqString s3;int i,j,k=0;for (i=0; i<s1.length; i++){for (j=0; j<s2.length; j++)if (s2.data[j]==s1.data[i])break;if (j<s2.length)            //s1.data[i]是公共字符{s3.data[k]=s1.data[i];k++;}}s3.length=k;return s3;
}int main()
{SqString s1, s2, s;StrAssign(s1, "message");StrAssign(s2, "agent");s = CommChar(s1, s2);DispStr(s);return 0;
}

运行结果截图如下:

数据结构上机实践第八周项目3-顺序串算法相关推荐

  1. 数据结构上机实践第八周项目1- 建立顺序串的算法库

    建立顺序串的算法库 本次实践将建立顺序串的算法库,这样可以方便的将此算法运用于我们的所需的工程中,简化操作. 本次实践将用到多文件组织工程的建立,建立方法可以点击此处参照.(工程环境:Visual C ...

  2. 数据结构上机实践第八周项目4-字符串加密

    字符串加密 密码在我们的生活中很常见,现在的加密算法最常用的是MD5和SHA512散列式算法,最早的密码加密方式很简单,容易被破译,但是却引领信息安全的潮流,本次实践,将实现最早的字符串加密方式,采用 ...

  3. 数据结构上机实践第八周项目9-广义表算法库及应用

    广义表算法库及应用 为了丰富算法库,以应对各类工程的需要,本次实践将进行广义表算法库的建立以及应用. 项目要求一: 建立广义表算法库,包括:  ① 头文glist.h,定义数据类型,声明函数:  ② ...

  4. 数据结构上机实践第八周项目2- 建立链串的算法库

    建立链串的算法库 一般每一种数据结构都不会局限于在连续空间内的存取,那我们的串自然也不反常,本次实践将建立链串的算法库,应用于有需求的工程当中,提高程序的容错性. 本次实践依然会用到多文件组织工程的建 ...

  5. 数据结构上机实践第八周项目8-稀疏矩阵的三元组表示的实现及应用

    稀疏矩阵的三元组表示的实现及应用 在现代社会中,在一个大量的人群集体中,总会有和某个人有相互之间的关系或者单向关系的,那我们的矩阵也是如此,稀疏矩阵压缩存储的方式,便可以让这种关系一目了然,巧妙应用. ...

  6. 数据结构上机实践第八周项目7—对称矩阵的压缩存储及基本运算

    对称矩阵的压缩存储及基本运算 贺老师的慕课当中,给我们拓展了这样的知识. 所以,本次的项目实践要求如下: 用压缩形式存储对称矩阵,实现下面的操作并测试 void Init(int *&b);/ ...

  7. 数据结构上机实践第八周项目6- 猴子选大王(数组版)

    猴子选大王(数组版) 在之前的项目中,实现了猴子选大王的项目要求,本次实践,将再次实现这个项目,但是运用数组的方法,做到一题多解,集思广益. 项目要求如下:一群猴子,编号是1,2,3 -m,这群猴子( ...

  8. 数据结构上机实践第八周项目5 - 计数的模式匹配

    计数的模式匹配 模式匹配在生活中运用广泛,日常所见的指纹识别,人脸识别......无一不用到模式匹配,为了体现模式匹配的基本思想,本次实践将实现简单的字符串的计数模式匹配. 项目要求如下:采用顺序结构 ...

  9. 数据结构上机实践第七周项目1 - 自建算法库——顺序环形队列

    自建算法库--顺序环形队列 本次实践将建立顺序环形队列的算法库,用于之后的工程中 实现源代码如下: 1.squeue.h /* copyright (t) 2017,烟台大学计算机学院 *All ri ...

最新文章

  1. 集成电路:迎国产替代浪潮,设计领域机会凸显
  2. C++ 经典面试题
  3. Joda-Time几个用法小记
  4. JAVA设计模式初探之适配器模式(转)
  5. 将Matlab换成Pycharm风格
  6. Java、JSP网上订餐系统
  7. node jade模板
  8. 对象存储OSS云存储
  9. Tecplot读取Excel文件中的数据
  10. 超融合服务器虚拟化优缺点,超融合产品,服务器虚拟化,桌面虚拟化-路坦力-smartx...
  11. Asp.net 企业建站CMS
  12. 大数据时代的变革与顺势而为——读《大数据时代》
  13. 嵌入式蓝桥杯又一个神之BUG Keil4 ADC仿真值出不来
  14. TensorFlow简单实例(二):logistic regression
  15. 获取android基带版本信息,android手机的基带怎么查看?
  16. OA项目实战学习(1)
  17. Kubernetes K8S 1.20部署Ingress nginx 0.30
  18. 石家庄市学府路机动车科目三考场路线详细教案
  19. python3网络爬虫:爬取堆糖照片
  20. 计算机二进制小数加法,二进制是如何将加减乘除变换为加法实现的

热门文章

  1. 2017乌鲁木齐ICPC: I. A Possible Tree(带权并查集)
  2. 牛客网暑期ACM多校训练营(第九场)H. Prefix Sum(CDQ分治)
  3. opencv 模板匹配,在图像中寻找物体
  4. opencv 基本绘图功能 画直线 画圆 给图像添加文字等
  5. matlab2c使用c++实现matlab函数系列教程-det函数
  6. 【Proteus仿真8086】简单IO接口实验——读取开关状态控制灯的亮灭
  7. python类创建对象底层实现机制(简单)
  8. springdata和mysql_Spring Boot使用Spring Data JPA访问MySQL数据库
  9. MySQL命令窗口下中文显示乱码的解决过程
  10. 初中地理知识大盘点《地理青花瓷》