数据结构学习 串的表示和实现
来源:互联网 发布:罗马 汉 知乎 编辑:程序博客网 时间:2024/05/20 02:26
在多数非数值处理的程序中,串也以变量的形式出现。
串有3种机内表示方法。
1、定长顺序存储表示
类似于线性表的顺序存储结构,用一组地址连续的存储单元存储串值的字符序列。再次存储结构中,按照预定义的大小,为每个定义的串变量分配一个固定长度的存储区,用定长数组描述之。
这种存储表示存在“截断”现象。
2、堆分配存储表示
以一组地址连续的存储单元存放串值字符序列,但他们的存储空间是在程序执行过程中动态分配而得。用动态分配函数malloc()和free()来管理这个称为“堆”的自由存储区。
3、串的块链存储表示
和线性表的链式存储结构相类似,也可采用链表方式存储串值。用链表存储串值时,存在一个“节点大小”的问题,即每个节点可以存放一个字符,也可以存放多个字符。
为便于操作,当以链表存储串值时,除头指针外还可附设一个尾指针指示链表中的最后一个节点,并给出当前串的长度。成如此定义的结构为块链结构。
进行联接操作时,需处理第一个串尾的无效字符。
在各种串的处理系统中,所处理的串往往很长或很多,所以我们需要考虑串值的存储密度。存储密度定义为:存储密度=串值所占的存储位/实际分配的存储位。存储密度小,处理方便,但存储占用量大。
另外,串的字符集的大小也是一个重要因素。一般地,字符集小,则字符的机内编码就短,这也影响串值的存储方式的选取。
0 0
- 数据结构学习 串的表示和实现
- 数据结构 - 串的存储表示和实现
- 【数据结构】串的块链存储表示和实现
- 单链表的表示和实现 - 数据结构
- 数据结构4:栈的表示和实现
- 栈的顺序表示和实现(数据结构)
- 队列的链式表示和实现(数据结构)
- 循环队列的表示和实现(数据结构)
- 数据结构学习笔记 --- 队列(循环队列-队列的顺序表示和实现)
- 数据结构学习笔记 --- 队列(循环队列-队列的顺序表示和实现)
- 严蔚敏版数据结构学习笔记(1):线性表的顺序表示和实现
- 严蔚敏版数据结构学习笔记(2):线性表的链式表示和实现
- 重温数据结构:栈的顺序表示和实现与栈的链式表示和实现
- 数据结构学习----线性表的链式表示(Java实现)
- 串的表示和实现
- 串的表示和实现
- 数据结构之:线性表的顺序表示和实现
- 数据结构—线性表的链式表示和实现
- 抽象基类
- UIPasteboard 粘贴板,复制粘贴UILabel,UIImageView的数据
- 尝试了所有的服务器都无法成功连接服务器。。。。。
- byte order
- ios自定义相机并加水印实现流程
- 数据结构学习 串的表示和实现
- ERROR :fatal error LNK1103: debugging information corrupt; recompile module
- 读取XML文件
- c/C++内存分配
- vc2010 属性值无效 灾难性故障 解决方法
- 表单验证1
- PHP对表单提交特殊字符的过滤和处理
- 内存地址对齐
- how to write a makefile