字符串adt定义与实现

字符串adt定义与实现

ID:17894936

大小:87.50 KB

页数:10页

时间:2018-09-09

字符串adt定义与实现_第1页
字符串adt定义与实现_第2页
字符串adt定义与实现_第3页
字符串adt定义与实现_第4页
字符串adt定义与实现_第5页
资源描述:

《字符串adt定义与实现》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、计算机实验:字符串ADT定义与实现目的掌握字符串的定义及基本操作的实现。问题描述用堆存储方式保存字符串,实现字符串的各种基本操作,包括赋值、替换、取子串、串连接等。步骤1.       用C语言定义字符串的ADT和基本操作。2.       实现赋值、替换、取子串、串连接等操作。3.       测试自己完成的练习,观察每个操作的执行效果。设备和环境PC计算机、Windows操作系统、C/C++开发环境结论能够理解并掌握字符串的定义和堆存储方式的实现方法。思考题1.       估算各个操作的复杂度和空间利用效率。#include#inclu

2、de #define OK1#define ERROR0#define OVERFLOW-1#define NOTFOUND-2#define MAXLEN10000    //每次读入的字符串的最大长度#define MAXCMD20       //每个命令的最大长度#define MAXN10         //字符串的最大个数  typedef struct{    char *ch;       //若是非空串,则按串长分配储存区,否则ch为NULL    int length;     //串长度}String;  int Str

3、Assign(String&T,char *chars){    if (T.ch)free(T.ch);       int i,len;    for (len=0;chars[len];len++);   //计算chars的长度存入len     if (!len)      {        T.ch=NULL;        T.length=0;    }    else    {        if (!(T.ch=(char*)malloc(len*sizeof(char)))) return OVERFLOW;        for (i=

4、0;iS.ch[i]?1:-1;    return T.length-S.

5、length;}  int StrClear(String&T){    if (T.ch){free(T.ch);T.ch=NULL;}    T.length=0;    return OK;}  int StrConcat(String&T,StringS1,StringS2){    if (T.ch)free(T.ch);     if (!(T.ch=(char*)malloc(sizeof(char)*(S1.length+S2.length)))) return OVERFLOW;       int i;    for (i=0;i

6、ength;i++)   //将串S1先放在T.ch的前面部分        T.ch[i]=S1.ch[i];    for (i=0;i

7、

8、pos>=S.length

9、

10、len<0

11、

12、pos+len-1>S.len

13、gth-1) return ERROR;  //输入数据不合法       if (T.ch)free(T.ch);       if (!len)    {        T.ch=NULL;        T.length=0;    }    else    {        if (!(T.ch=(char*)malloc(len*sizeof(char)))) return OVERFLOW;        int i;        for (i=0;i

14、 T.length=len;    }

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。