现在的位置: 首页 > 综合 > 正文

数据结构与算法系列-串-串的基本概念与存储结构

2014年01月10日 ⁄ 综合 ⁄ 共 734字 ⁄ 字号 评论关闭
文章目录

串的基本概念

串是一种特殊的线性表,他的数据对象是字符集和,它的每个元素都是一个字符一系列相连的字符就组成了一个字符串,简称串
串的描述:s = "a1a2a3..........an" (n >= 0);(n称为串的长度)

串的存储结构

线性表的顺序存储结构和链式存储结构对于串来说都是适用的。

静态存储结构

串的静态存储结构采用顺序存储结构,简称顺序串。
描述:
typedef struct string{
	char ch[MAXLEN];
	int len;
}STRING;

当计算机按字单位遍址时,一个存储单元由若干个字节组成,这是顺序串存储结构有非紧缩存储和紧缩存储两种方式。

串的非紧缩式存储

假设计算机的字长为32位,即4个字节。则一个存储单元仅存放一个字符,就要浪费三个字节。
优点:对串中的字符处理效率高,但对存储空间的利用率低。

串的紧缩式存储

即尽可能的将多个字符存放在一个字中。紧缩存储放肆和对存储空间利用效率高,但对串中的字符操作很不方便,需要花较多的处理时间。

链式存储结构

串的链式存储结构称为链串,结构与链表相似,链串中每个结点有两个域,一个是值域,存放字符串中的字符,另一个是指针域,用于存放后续结点的地址。
定义:
typedef struct node{

  char data;

  struct node *next;

  }LinkStrNode; //结点类型

索引存储结构

构造方法:

1:开辟一块连续的存储空间,用于存放各串本身的值
2:再另外建一个索引表,在索引表的项目中存放一个串的名称、长度和在存储空间的起始位置。
3:在系统运行过程中,每当有一新的串出现时,系统就从存放串值的存储空间中给新串分配一块连续的空间,用于存放该串的值。另外在索引表中增加一个索引项,该项纪录该串的名称、长度、起始位置。

抱歉!评论已关闭.