数据结构上机实践第八周项目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);
本次实践所用到的顺序串的算法库点击此处参考(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- 建立顺序串的算法库
建立顺序串的算法库 本次实践将建立顺序串的算法库,这样可以方便的将此算法运用于我们的所需的工程中,简化操作. 本次实践将用到多文件组织工程的建立,建立方法可以点击此处参照.(工程环境:Visual C ...
- 数据结构上机实践第八周项目4-字符串加密
字符串加密 密码在我们的生活中很常见,现在的加密算法最常用的是MD5和SHA512散列式算法,最早的密码加密方式很简单,容易被破译,但是却引领信息安全的潮流,本次实践,将实现最早的字符串加密方式,采用 ...
- 数据结构上机实践第八周项目9-广义表算法库及应用
广义表算法库及应用 为了丰富算法库,以应对各类工程的需要,本次实践将进行广义表算法库的建立以及应用. 项目要求一: 建立广义表算法库,包括: ① 头文glist.h,定义数据类型,声明函数: ② ...
- 数据结构上机实践第八周项目2- 建立链串的算法库
建立链串的算法库 一般每一种数据结构都不会局限于在连续空间内的存取,那我们的串自然也不反常,本次实践将建立链串的算法库,应用于有需求的工程当中,提高程序的容错性. 本次实践依然会用到多文件组织工程的建 ...
- 数据结构上机实践第八周项目8-稀疏矩阵的三元组表示的实现及应用
稀疏矩阵的三元组表示的实现及应用 在现代社会中,在一个大量的人群集体中,总会有和某个人有相互之间的关系或者单向关系的,那我们的矩阵也是如此,稀疏矩阵压缩存储的方式,便可以让这种关系一目了然,巧妙应用. ...
- 数据结构上机实践第八周项目7—对称矩阵的压缩存储及基本运算
对称矩阵的压缩存储及基本运算 贺老师的慕课当中,给我们拓展了这样的知识. 所以,本次的项目实践要求如下: 用压缩形式存储对称矩阵,实现下面的操作并测试 void Init(int *&b);/ ...
- 数据结构上机实践第八周项目6- 猴子选大王(数组版)
猴子选大王(数组版) 在之前的项目中,实现了猴子选大王的项目要求,本次实践,将再次实现这个项目,但是运用数组的方法,做到一题多解,集思广益. 项目要求如下:一群猴子,编号是1,2,3 -m,这群猴子( ...
- 数据结构上机实践第八周项目5 - 计数的模式匹配
计数的模式匹配 模式匹配在生活中运用广泛,日常所见的指纹识别,人脸识别......无一不用到模式匹配,为了体现模式匹配的基本思想,本次实践将实现简单的字符串的计数模式匹配. 项目要求如下:采用顺序结构 ...
- 数据结构上机实践第七周项目1 - 自建算法库——顺序环形队列
自建算法库--顺序环形队列 本次实践将建立顺序环形队列的算法库,用于之后的工程中 实现源代码如下: 1.squeue.h /* copyright (t) 2017,烟台大学计算机学院 *All ri ...
最新文章
- 集成电路:迎国产替代浪潮,设计领域机会凸显
- C++ 经典面试题
- Joda-Time几个用法小记
- JAVA设计模式初探之适配器模式(转)
- 将Matlab换成Pycharm风格
- Java、JSP网上订餐系统
- node jade模板
- 对象存储OSS云存储
- Tecplot读取Excel文件中的数据
- 超融合服务器虚拟化优缺点,超融合产品,服务器虚拟化,桌面虚拟化-路坦力-smartx...
- Asp.net 企业建站CMS
- 大数据时代的变革与顺势而为——读《大数据时代》
- 嵌入式蓝桥杯又一个神之BUG Keil4 ADC仿真值出不来
- TensorFlow简单实例(二):logistic regression
- 获取android基带版本信息,android手机的基带怎么查看?
- OA项目实战学习(1)
- Kubernetes K8S 1.20部署Ingress nginx 0.30
- 石家庄市学府路机动车科目三考场路线详细教案
- python3网络爬虫:爬取堆糖照片
- 计算机二进制小数加法,二进制是如何将加减乘除变换为加法实现的
热门文章
- 2017乌鲁木齐ICPC: I. A Possible Tree(带权并查集)
- 牛客网暑期ACM多校训练营(第九场)H. Prefix Sum(CDQ分治)
- opencv 模板匹配,在图像中寻找物体
- opencv 基本绘图功能 画直线 画圆 给图像添加文字等
- matlab2c使用c++实现matlab函数系列教程-det函数
- 【Proteus仿真8086】简单IO接口实验——读取开关状态控制灯的亮灭
- python类创建对象底层实现机制(简单)
- springdata和mysql_Spring Boot使用Spring Data JPA访问MySQL数据库
- MySQL命令窗口下中文显示乱码的解决过程
- 初中地理知识大盘点《地理青花瓷》