博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据结构 线性表(一) 字符串插入
阅读量:3958 次
发布时间:2019-05-24

本文共 1329 字,大约阅读时间需要 4 分钟。

数据结构(一)

学习数据结构与算法过程中的心得体会以及知识点的整理,方便我自己查找,也希望可以和大家一起交流。

—— 字符串插入 ——

1.题目描述

有两个字符串str和substr,str的字符个数不超过10,substr的字符个数为3。(字符个数不包括字符串结尾处的’\0’。)将substr插入到str中ASCII码最大的那个字符后面,若有多个最大则只考虑第一个。

原题目。

1.1输入

输入包括若干行,每一行为一组测试数据,格式为 str substr

1.2输出

对于每一组测试数据,输出插入之后的字符串。

1.3样例输入和输出

样例输入

abcab eee
12343 555
样例输出
abceeeab
12345553

2.代码实现

c++

#include 
using namespace std;int main(){
//a为第一段字符串,即str;b为第二段字符串,即substr。 string a, b; //进入循环来判断a中ASCII码最大的字符,并进行插入操作。 while(cin >> a >> b)//最简单的输入办法,自动识别空格。 {
//n用来储存a字符串的长度。 int len = a.length(); //m用来储存a字符串中ASCII码最大的字符的位置。 int max_num = 0; //循环寻找a字符串中最大ASCII码字符的位置。 for(int i = 0;i < len;i++) if(a[i] > a[max_num]) max_num = i; //循环输出a字符串最大ASCII码字符以及其之前的字符串。 for(int i = 0;i <= max_num;i++) cout << a[i]; //输出b字符串。 cout << b; //循环输出a字符串最大ASCII码字符之后的字符串。 for(int i = max_num + 1;i < len;i++) cout << a[i]; } return 0;}

c

只需要把c++的输入输出改一下,输入部分对于初学者来说略微麻烦,可以多次调试。具体代码就不写出来了。

3.代码说明

具体的代码作用都在代码注释中,这段代码将本题的插入动作变为分段输出。本题的原题出现在数据结构的第一节——线性表。很多刚学数据结构或者C/C++课程的同学认为线性表就是顺序表或者链表,其实不是的,线性表仅仅是逻辑上的定义而已,即具有相同特性数据元素的有限序列,(如一个字符数组或者一个整型数组再或者链表 )并不是说,线性表就一定是链表或者顺序表(链表和顺序表都满足线性表的定义,只是实现方式不一样,顺序表采用顺序存储方式,内存中开辟的地址是连续的,而链表采用链式存储的方式,地址是可以不连续的)。

转载地址:http://cfazi.baihongyu.com/

你可能感兴趣的文章