- 939
- 0
- 约 7页
- 2017-03-24 发布于重庆
- 举报
数据结构-顺序串基本操作实验报告
数据结构实验报告
课程 数据结构 _ 实验名称 顺序串基本操作
院系 电信学院 专业班级 计科10-4 姓名 学 号 一、实验目的
1)熟悉串的定义和串的基本操作。
2)掌握顺序串的基本运算。
3)加深对串数据结构的理解,逐步培养解决实际问题的编程能力。
二、实验环境
装有Visual C++6.0的计算机。
本次实验共计2学时。
三、实验内容
编写一个程序,实现顺序串的各种基本运算,并在此基础上设计一个主程序。具体如下:
编写串的基本操作函数
顺序串类型定义如下所示:
typedef struct char ch[MAX]; int length;
SeqString;
(1)串赋值 Assign s,t 将一个字符串常量赋给串s,即生成一个其值等于t的串s
(2)串复制 StrCopy s,t 将串t赋给串s
计算串长度 StrLength s 返回串s中字符个数
(4)判断串相等StrEqual s,t 若两个串s与t相等则返回1;否则返回0。
(5)串连接 Concat s,t 返回由两个串s和t连接在一起形成的新串。
(6)求子串 SubStr s,i,j 返回串s中从第i 1≤i≤StrLength s 个字符开始的、由连续j个字符组成的子串。
(7)插入InsStr s,i,t 将串t插入到串s的第i 1≤i≤StrLength s +1 个字符中,即将t的第一个字符作为s的 第i个字符,并返回产生的新串
(8)串删除 DelStr s,i,j 从串s中删去从第i 1≤i≤StrLength s 个字符开始的长度为j的子串,并返回产生新串。
(9)串替换 RepStr s,s1,s2 在串s中,将所有出现的子串s1均替换成s2。
(10)输出串DispStr s 输出串s的所有元素值
判断串是否为空 IsEmpty s 为空返回1,不为空返回0
编写主函数
调用上述函数实现下列操作:
建立串s “abcdefghijklmn”,串s1 “xyz”,串t=“hijk”
复制串t到t1,并输出t1的长度
在串s的第9个字符位置插入串s1而产生串s2,并输出s2
删除s第2个字符开始的5个字符而产生串s3,并输出s3
将串s第2个字符开始的3个字符替换成串s1产生串s4,输出s4 提取串s的第2个字符开始的10个字符而产生串s5,并输出s5
将串s1和串t连接起来而产生串s4,并输出s4
比较串s1和s5是否相等,输出结果
判断s3是否为空
四、源程序代码
#include
#define MAX 100
typedef struct char ch[MAX]; int length;
SqString;
void StrAssign SqString s,char t[] //串赋值 int i;
for i 0;t[i]! \0;i++
s.ch[i] t[i];
s.length i; void StrCopy SqString s,SqString t //串复制 int i;
for i 0;i t.length;i++ s.ch[i] t.ch[i];
s.length t.length; int StrEqual SqString s,SqString t //判断串相等 int same 1,i; if s.length! t.length same 0; else for i 0;i s.length;i++ if s.ch[i]! t.ch[i] same 0; break; return same ; int StrLength SqString s //计算串长度 return s.length ; SqString Concat SqString s,SqString t //串连接 SqString str;
int i;
str.length s.length+t.length;
for i 0;i s.length;i++ str.ch[i] s.ch[i];
for i 0;i t.length;i++ str.ch[s.length+i] t.ch[i];
return str; SqString SubStr SqString s,int i,int j //求子串 SqString str;
int k;
str.length 0;
if i 0||i s.length||j 0||i+j-1 s.length return str;
for k i-1;k i+j-1;k++ str.ch[k-i+1] s.ch[k];
str.length j;
ret
原创力文档

文档评论(0)