数据结构-串的存储表示及基本操作-课程设计-实验报告

上传人:飞****9 文档编号:149025445 上传时间:2020-10-23 格式:DOCX 页数:16 大小:184.04KB
返回 下载 相关 举报
数据结构-串的存储表示及基本操作-课程设计-实验报告_第1页
第1页 / 共16页
数据结构-串的存储表示及基本操作-课程设计-实验报告_第2页
第2页 / 共16页
数据结构-串的存储表示及基本操作-课程设计-实验报告_第3页
第3页 / 共16页
数据结构-串的存储表示及基本操作-课程设计-实验报告_第4页
第4页 / 共16页
数据结构-串的存储表示及基本操作-课程设计-实验报告_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《数据结构-串的存储表示及基本操作-课程设计-实验报告》由会员分享,可在线阅读,更多相关《数据结构-串的存储表示及基本操作-课程设计-实验报告(16页珍藏版)》请在金锄头文库上搜索。

1、数 据 结 构 课 程 设 计设计题目:串的存储表示及基本操作学生姓名:专业班级:课题名称串的存储表示及基本操作院系年级专业学号姓名成 绩1、课题设计目的:( 1):掌握串的基本存储结构;( 2):掌握串的基本运算及其实现;2、课题设计意义:通过此次对于串及其基本操作的课程设计,更深层次课题设计的了解串的基本概念、 特征,掌握串的基本存储结构、 基本运算及其实现。目的与根据课程设计的目的和基本要求,注意一些容易发生错误的问题,从而进设计意义一步的认真分析问题、 总结结论和经验, 理解设计的思想和构思。 联系到生活上的实际问题,培养课程设计的能力及思想构思。指导教师:年月日1目录第一章 数据结构

2、课程设计的目的、基本要求及其解析 .11.课程设计的目的: .12.课程设计要求: .13.课程设计题目解析: .1第二章 程序设计内容 .11程序设计的基本思想 .12.程序设计代码 : .33程序运行结果: .8第三章 程序设计的优缺点及遇到的问题 .123.1 :课程设计的优缺点: .123.2遇到的问题: .12第四章总结 .124.1思考和小结: .124.2参考文献: .13第一章数据结构课程设计的目的、基本要求及其解析1. 课程设计的目的:( 1):掌握串的基本存储结构。( 2):掌握串的基本运算及其实现。2. 课程设计要求:( 1):将上机程序全部调试通过。( 2):结合程序分

3、析运行结果。3. 课程设计题目解析:顾名思义,串及其基本操作,就是要在理解串的基本概念和特征的基础上,了解串的内部表示和处理方法。这样才能有效地实现串的基本操作。串,也还是字符串,是一种特殊的线性表。特殊之处在于表中的每一个元素都是字符,以及由此而要求的一些特殊操作。在串及其基本操作中,要求的操作有联接、求串长、求子串、比较串的大小、串的插入、串的删除、子串的定位和置换。因为所要进行的操作比较零散也比较多,所以就要用到多个函数把这个整体的课程设计划分成多个模块来进行。每个函数对应一个功能。在主函数中,用一个菜单,就可以将原来的已分模块的函数系统地进行检验及操作。在程序设计的过程中,根据课程设计

4、的目的和基本要求,注意一些容易出错的地方及问题。第二章程序设计内容1程序设计的基本思想: (对于串及其基本操作中,程序被分割为很多的模块。所以以下的程序设计业分成好几个方面来一一阐述)1).字符串的联接:在该函数中,strcat(str1 ,str2 )就是将串str2紧接着放在串 str1 的串值的末尾, 组成一个新的串 str1 。最后所得的新的 str1 即为所求的原来的两个字符 str1 和 str1 的联接后的结果。输出即是。2). 比较两个字符串的大小:在该函数中,strcmp (str1 ,str2 )是一个函数,它的功能是比较两个串str1和 str2的大小,通过 if语句的判

5、断函数strcmp(str1 ,str2 )的函数值大小, 其中函数值小于、 等于和大于 0 时,分别表示 str1str2,其对应的输出结果分别为-1 、 0、 1。3) 求字符串的串长:在该函数中,要先定义一个整形变量i ,strlen (str )表示字符串 str 的长度,它是一个整形函数。通过函数 strlen (str )来算出字符串的长度,然后赋值给整形变量 i 输出,从而 i 的值即为所求的字符串的长度。4). 串的复制:在该函数中,首先分别输入两串字符串 str1 和 str2 ,通过函数 strcpy ( str1 , str2 )来实现 str2 复制给 str1 的功能

6、,得到复制后的字符串为新的 str1 ,输出即为复制后的结果。15). 求字符串的插入: 该函数中有三个形参, 两个是字符串 s 和 t ,一个是整形形参 i 。即把字符串 t 插入到 s 的第 i 个元素之后。在函数中,定义两个个整形变量 j 、k,其中 &s-curlen 和&t-curlen 分别指原字符串和要插入字符串的长度。用一个 for 循环,for (j=s-curlen 1;j=i ;j- ) ,满足循环条件的要进行的操作时把 s-chj赋值给 s-chj+t-curlen,就是让 s-ch 中空出等于 &t-.curlen的长度的空间,好让 t 可以插入。下面再用一个 for

7、 循环 for(k=0,j=i;t-chk!=0;k+,j+),再 把t-chk赋 值 给s-chj;这 样 的 把t插 入 到 了s中 。 最 后 , 给s-chs-curlen+t-curlen赋值一个 0 ,这时的s-chs-curlen+t-curlen就是一个新的字符串, 然后把 s-chs-curlen+t-curlen再赋值给 s-curlen即可得到所求的新的字符串6). 求串的删除:该函数有三个形参,一个是字符串s,两个是整形形参i 和 j ,在函数中定义一个整形变量k,输入原字符串和其长度&s-curlen ,函数中用 for循环,for(k=i+j-1;s-chk!=0;

8、k+),把 s-chk赋值给 s-chk-j,既用覆盖的方式删除从第 i 个元素开始连续j 个元素,最后把 0赋值给 s-chk-j,再把 k-j赋值给 s-curlen 。s-ch 就是所求的删除从第i 个元素开始连续j 个元素后的新的字符串。7). .求字符串的置换:这个函数中有四个形参,两个字符串s 和 t ,两个整形形参 i 和 j ,在函数内部还要定义五个整形变量 k=0、l 、n、m、p。首先把 i+j 赋值给 l ;通过输入输入主字符串和要置换的字符串的长度、 主字符串和要置换的字符串 s 和 t 。先要判断 j 和将要被置换的字符串的串长关系,如果刚好相等,就让 t 从第一个元

9、素开始, s 从第第 i 个元素开始,一一赋值。如 果 t 的 串 长 比 较 大 , 则 用 一 个 for 循 环 ,for(k=s-curlen;k=i+j-1;k+),sk赋值给 sk-j+t-scurlen,这样剩余的空间刚好可以用来存放t 的,同样的,如果t 的串长比较小,同样用以for循 环 , for(k=i+j-1,m=i;sk!=0;k+,m+),sk赋 值 给sm+t-curlen-1,s剩余的空间也刚好用来存放t 的。然后,把 t 中的元素对应的赋值给s。最后,在s 的最后一个元素后赋值一个0,这时的 s,就是 t 置换后的新的字符串。8). 子串的定位:这个函数有两个

10、形参,s 和 t ,在函数内部,还要定义两个整形变量i=0 和 j=0 。用 while 语句 while ( icurlen)&(jcurlen)) ,满足条件后进行的操作是检验对应的 s 和 t 的元素是否相等,相等时就 i+ ,j+ ,用 i 减去 t 的串长即为 t 作为子串在 s 中的定位位置。 不相等时,就用 i 减去 j 加上 1 赋值给 i , j=0 ,往下扫描时,就从 t 的第一个元素再接着扫描。9) 主函数:在主函数中,因为要最多输入两个字符串,所以要先定义两个字符串s 和t 。有的主函数需要用到整形的变量, 最多是两个,所以也要定义两个整形变量 k 和 m。函数中,有很

11、多的功能不同的函数,这样就要求验证很多次,所以在这里我们考虑用2菜单来实现。用一个 while 循环,循环的条件为永真, 这样当做完一个函数的验证时,系统就会自动让你接着选择。在 while 循环下,输入一个数字。每个数字代表不同的功能。然后用一个 switch 语句,不同的 case 对应不同的函数,如: case(0)就可以代表求字符串的串长。2. 程序设计代码 :#include#include#define maxsize 32/* 假设串可能的最大长度是32*/typedef structchar chmaxsize; /* 串的存储空间*/int curlen;/* 当前串的长度 */seqstring;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 管理论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号