1 3.4 串的基本操作演示 一、 需求分析 1.用堆分配存储表示实现 Hstring 串类型的最小操作子集。 2.实现串抽象类型的其余基本操作(如联接、删除等),且不能使用 c 语言本身提供的串函数,必须自己构造新的函数实现串的基本操作。 3.本演示系统是一个命令解释程序,循环往复的处理用户输入的每一条命令,直至终止程序的命令为止。 4.参数的合法性必须严格检查,要严格按照命令的输入格式进行输入,否则程序可能无法正确执行指令。 二、概要设计 实现串的抽象数据类型和实现其基本操作,程序中将涉及下列抽象数据类型: 1.定义串的基本主结构 ADT String{ 数据对象:D={ai| ai∈charcaterset,i=1,2,…,n,n>=0} 数据关系:R1={
|ai-1,ai∈D, i=1,2,…,n} 基本操作: StrCompare(HString S,HString T) 初始条件:S 和 T 是已存在的 Hstring 类型。 操作结果:比较其值,显示结果“UNEQUAL”或“EQUAL”。 StrLength(HString S) 初始条件:S 是已存在的 Hstring 类型。 操作结果:返回该串的长度。 Concat(HString S1,HString S2) 初始条件:S1 和 S2 是已存在的 Hstring 类型。 操作结果:由 S1 和 S2 联接成新串。 Index(HString S,HString t) 初始条件:S 和 T 是已存在的 Hstring 类型。 操作结果:显示第二个串在第一个串中首次出现的起始位置。 Replace(HString M, HString t, HString v) 初始条件:M、t 和 v 是已存在的 Hstring 类型。 操作结果:将第一个串中所有出现的第二个串用第三个串替换,显示结果串的内部名和串值,原串不变。 SubString(HString S,int pos,int len) 初始条件:S 是已存在的 Hstring 类型。 操作结果:如果参数合法,则显示子串的内部名和串值 。 Strprint(HString S) 初始条件:S 是已存在的 Hstring 类型。 操作结果:显示串 S 的内部名和串值 。 2 getin(int n) 初始条件:处理命令串S1, 操作结果:把串值存入串头表中 Insert(int n) 初始条件:要给指定的串赋值,n 为指定的串的内部名 操作结果:为指定内部名的串赋值 show() 初始条件:要求查看输入格式 操作结果:输出各种命令的输入格式 }ADT String 二.存储结构及相应的类型定义 公用头文件header.h #include #include #include #include #include #defin...