数据结构之串(上)——串的基本概念与存储结构

数据结构之串(上)——串的基本概念与存储结构

1.什么是串

(1)我们先来看一下基本的关系:

数据结构是指两个集合:a.有特定关系的元素的集合(元素集)
                    b.这些元素之间的关系的集合(关系集)
元素之间的关系有: a.线性关系
                  b.非线性关系
在各种各样的数据结构中,如果其中的元素是线性关系,我们就称呼这个数据结构为线性表;
如果线性表中的元素集是字符集(即元素类型均为字符型),我们就称这种线性表为串。

(2)必须知道的关于串的基本概念:

串的长度:串中所包含的字符个数称为该串的长度。
空串:长度为零,即不包含任何字符
子串:串中任意个连续字符组成的子序列称为该串的子串,嘿嘿,主串是什么就不用我解释了吧
空格串(空白串):顾名思义,所有字符都是空格

2.串的存储方式

(1)字符数组法(顺序存储结构):

a.将串定义为字符数组,利用串名可以直接访问串值 b.呜呜呜,数组要先分配好存储空间啊,存储空间就固定了啊 c.代码:#define m=100//用户能在100以内定义最大串长 typedef char Sstring[m+1];//0号单元存放串的长度,字符从1号单元存放 Sstring S;//S的类型为Sstring

(2)字符序列法(堆分配存储结构):

a.用一组地址连续的存储单元依次存储串中的序列
b.程序运行时根据串的实际长度动态分配存储空间
c.代码:typedef struct { char *ch;//ch是地址,ch[i]或*ch是元素,我们可以用s.ch[i]来访问字符串s中第i个元素 int length;//s的长度L等于s.length }Hstring;

(3)链式存储

代码:#define m=10//一个地址可存10个字符 typedef struct snode { char ch[m]; struct node*next;//地址 }snode;

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zttbee

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值