标签:顺序 分配 过程 动态 固定 函数 style 下标 语言
串是由数字、字母或其他字符组成的有限序列,一般记为
StringName = “a[0]a[1]a[2]···a[i]···a[n-1]”(n>0,0<=i<=n-1)
其中StringName是串名,双引号内的序列是该串的值,n为串的长度,i为某一字符在该串中的下标
串的逻辑结构与线性表很相似,单穿的数据元素只能为字符,因此我们认为串是一种特殊的线性表,在串的基本操作中,我们通常以整体为操作对象,这和线性表以单个元素作为操作对象不同。
类似于线性表的顺序存储结构,用一组地址连续的存储单元存储串值的字符序列。在串的定长顺序存储结构中,按照预定义的大小,为每个定义的串变量分配一个固定长度的存储区。串的实际长度可在这预定义长度的范围内随意,超过预定义长度的串值则被舍去,称之为“截断”
这种存储表示的特点是,仍以一组地址连续的存储单元存放串值字符序列,但它们的存储空间是在程序执行过程中进行动态分配而得。利用函数为每个新产生的串分配一块实际串长所需的存储空间,若分配成功,则返回一个指向起始地址的指针,作为串的基址,同时为了以后处理方便,约定串长也作为存储结构的一部分。
和线性表的链式存储结构相类似,也可采用链表方式存储串值。由于串结构的特殊性——结构中的每个数据元素是一个字符,则用链表存储串值时,存在一个“结点大小”的问题,即每个结点可以存放一个字符,也可以存放多个字符。为了方便进行串的操作,当以链表存储串值时,除头指针外还可以附设一个尾指针指示链表中的最后一个结点,并给出当前串的长度。
标签:顺序 分配 过程 动态 固定 函数 style 下标 语言
原文地址:https://www.cnblogs.com/yachao30/p/12229782.html