串(字符串)---特殊的线性表

串(字符串)

串是一种特殊的线性表,其数据元素仅仅由一个字符组成,
计算机非数值时处理的对象经常是字符串数据
1.串的概念

串是由零个或多个任意字符组成的字符序列

2.串的术语
  • 一个串的任意个连续的字符组成的子序列称为该串的子串,包含该子串的串称为主串
  • 串相等: 两个串的长度相等且对应的字符都相等
3.串的存储方式
对串的存储方式取决于我们对串的运算。如果只是输入或输出常量出现,
则需要存储该串的字符序列
3.1串的顺序存储

这种存储方法可以直接得到串的长度,即s.last+1

#define MAXSIZE
typedef struct{
	char ch[MAXSIZE];
	int last;//指向最后一个字符的位置
}SqString;
SqString s;

在这里插入图片描述

3.2串的堆存储
串值的存储空间可在程序执行过程中动态分配可得,计算机存在这样的一个自由存储区,
叫做堆,用的时候可以申请空间,不用的时候在释放回去

堆存储的基本思想:根据串的长度,动态地为每个串在堆空间store申请对应大小的存储区域,当原空间不够时,可以继续申请
在这里插入图片描述

  • 串名的存储映像
    它是串名——串值内存分配的对照表,也称为索引表
typedef struct{
	int length;
	int str;//起始地址
}Hstring;
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值