知识大全 串- 串的存储结构 - 串的链式存储
Posted 结点
篇首语:亦余心之所善兮,虽九死其犹未悔。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 串- 串的存储结构 - 串的链式存储相关的知识,希望对你有一定的参考价值。
串的链式存储
链串
>
用单链表方式存储串值 串的这种链式存储结构简称为链串
链串的结构类型定义
typedef struct node
char data;
struct node *next;
LinkStrNode; //结点类型
typedef LinkStrNode *LinkString; //LinkString为链串类型
LinkString S; //S是链串的头指针
注意
①链串和单链表的差异仅在于其结点数据域为单个字符
②一个链串由头指针唯一确定
链串的结点大小
通常 将结点数据域存放的字符个数定义为结点的大小 结点的大小的值越大 存储密度越高
( )结点大小为 的链串
【例】串值为 abcdef 的结点大小为 的链串S如下图所示
>
这种结构便于进行插入和删除运算 但存储空间利用率太低
( )结点大小> 的链串
【例】串值为 abcdef 的结点大小为 的链串S如下图所示
>
注意
①为了提高存储密度 可使每个结点存放多个字符
②当结点大小大于 时 串的长度不一定正好是结点大小的整数倍 因此要用特殊字符来填充最后一个结点 以表示串的终结
③虽然提高结点的大小使得存储密度增大 但是做插入 删除运算时 可能会引起大量字符的移动 给运算带来不便
【例】上图中 在S的第 个字符后插入 xyz 时 要移动原来S中后面 个字符的位置 结果见下图
> cha138/Article/program/sjjg/201311/23911
相关参考
串的链式存储链串 用单链表方式存储串值串的这种链式存储结构简称为链串 链串的结构类型定义 typedefst
因为串是特殊的线性表故其存储结构与线性表的存储结构类似只不过由于组成串的结点是单个字符所以存储时有一些特殊的技巧 串的顺序存储 顺序串 串的顺序存储结构简称为顺序串 与顺序表类似顺序串是用
因为串是特殊的线性表故其存储结构与线性表的存储结构类似只不过由于组成串的结点是单个字符所以存储时有一些特殊的技巧串的顺序存储顺序串 串的顺序存储结构简称为顺序串 与顺序表类似顺序串是用一组地址
串的顺序存储 串的顺序存储结构简称顺序串顺序串是用一组地址连续的存储单元依次存储串中的字符序列 静态存储分配的顺序串 顺序串最简单的描述形式是直接使用定长的字符数组来定义数组的上界预先
顺序串上的子串定位运算 ()朴素的串匹配算法的基本思想 即用一个循环来依次检查nm+个合法的位移i(≤i≤nm)是否为有效位移 具体过程【参见动画演示】 ()顺序串上的串匹配算法 以下以
子串定位运算 串是特殊的线性表故顺序串和链串上实现的运算分别与顺序表和单链表上进行的操作类似 C语言的串库里提供了丰富的串函数来实现各种基本运算因此我们对各种串运算的实现不作讨论利用串函数实现
.任意个连续的字符组成的子序列 . O(m+n) . . .()模式匹配 ()模式串 .()其数据元素都是字符()顺序存储()和链式存储()串的长度相等且两串中对
顺序串又可按存储分配的不同分为 ·静态存储分配直接用定长的字符数组来定义优点是涉及串长的操作速度快但不适合插入链接操作 ·动态存储分配是在定义串时不分配存储空间需要使用时按所需串的长度分配存储
.设T和P是两个给定的串在T中寻找等于P的子串的过程称为__()__又称P为__()__【西安电子科技大学二(/分)】 .串是一种特殊的线性表其特殊性表现在__()__串的两种最基本的存储方式是
串的基本运算cha138/Article/program/sjjg/201311/23402