数据结构-串的复习

本文介绍了数据结构中的串,即字符串的概念,并对比了静态存储与动态存储两种方式。通过定义SString和HString类型,展示了如何创建、操作串,包括求长度、比较、清空、连接和子串提取等基本操作。动态存储虽然速度较慢,但在实际应用中更为常见。此外,提到了链表存储的串,但由于复杂性和实用性问题,这里并未深入讲解。

先简单介绍一下串,其实串就是我们一般所说字符串,是由多个字符组成的有限序列,‘aasddsfasdggsa',就是一个字符串,串的逻辑结构和线性表很类似,仅仅是串的数据对象限制为字符,然而,串的操作与线性表差别很大,串,想象也知道,是对一串字符操作,而线性表,大都对一个,单个字符进行插入,查询,查找的操作。

下面我将定义串的类型,其实平常我们用数组存储一段字符,就是串的存储,不过我们重新定义了

typedef unsigned char SString[Maxsize+1];

Maxsize为最大长度,可任意定义,而且串的大小也可以随意,不过超过长度的将不会被存储,这是静态存储最大的弊端,不过静态存储的速度很快,

还有一种对串的存储方法,动态存储,动态分配内存,串无限长,没有限制,虽然速度慢些,但实际还是主要使用它,因此我们着重介绍他。

首先定义类型

typedef struct{
 char *data;
 int length;
}HString;

然后生成串,

对串的操作主要有求串的长度,串的就比较,清空串,连接串,插入子串,下面我将完成这些函数

 还有一个链表储存的串,

typedef struct chunk{

char ch[Maxsize];

struct chunk *next;

}Chunk;

太麻烦,实用性太低,这里就不介绍了,有兴趣的可以自己查查资料,ok,串的复习到此结束,明天再继续,我要继续研究我的MFC了...

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值