除了顺序串,还有链串,所谓链串,就是链式存储的字符串。
下面是链串的简单实现
// 链串
#include
#include
typedef struct snode
{ char data;
struct snode *next;
} LinkStrNode;
//生成串
void StrAssign(LinkStrNode *s,char cstr[])
{ int i;
LinkStrNode *r,*p;
s=(LinkStrNode *)malloc(sizeof(LinkStrNode));
r=s; //r始终指向尾结点
for (i=0;cstr[i]!='\\0';i++)
{ p=(LinkStrNode *)malloc(sizeof(LinkStrNode));
p->data=cstr[i];
r->next=p; r=p;
}
r->next=NULL; //尾结点next域置为空
}
void DestroyStr(LinkStrNode *s)
{ LinkStrNode *pre=s,*p=s->next; //pre指向结点p的前驱结点
while (p!=NULL) //扫描链串s
{ free(pre); //释放pre结点
pre=p; //pre、p同步后移一个结点
p=pre->next;
}
free(pre);
}
LinkStrNode *Concat(LinkStrNode *s,LinkStrNode *t)
{ LinkStrNode *str,*p=s->next,*q,*r;
str=(LinkStrNode *)malloc(sizeof(LinkStrNode));
r=str; //r指向结果串的尾结点
while (p!=NULL) //用p扫描s的所有数据结点
{ q=(LinkStrNode *)malloc(sizeof(LinkStrNode));
q->data=p->data; //将p结点复制到q结点中
r->next=q;r=q; //将q结点链接到str的末尾
p=p->next;
}
p=t->next;
while (p!=NULL) //用p扫描t的所有数据结点
{ q=(LinkStrNode *)malloc(sizeof(LinkStrNode));
q->data=p->data; //将p结点复制到q结点中
r->next=q;r=q; //将q结点链接到str的末尾
p=p->next;
}
r->next=NULL; //尾结点的next域置为空
return str;
}
// 查询子串
void Repl(LinkStrNode *s)
{
LinkStrNode *p=s->next, *q;
int find=0;
while (p->next!=NULL && find==0) //查找ab子串
{
if (p->data=='a' && p->next->data=='b')
{ p->data='x'; p->next->data='z';
q=(LinkStrNode *)malloc(sizeof(LinkStrNode));
q->data='y'; q->next=p->next; p->next=q;
find=1;
}
else p=p->next;
}
}
// 查询子串
int index(SqString s,SqString t)
{ int i,j,k;
for (i=0;i<=s.length-t.length;i++)
{ for (k=i,j=0; k
上述代码是对伪代码的简单实现,没有语法错误,可作为参考用例。
审核编辑:刘清
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
数据存储
+关注
关注
5文章
970浏览量
50894 -
字符串
+关注
关注
1文章
578浏览量
20506
发布评论请先 登录
相关推荐
字符串的表示
字符串的表示 随着计算机在文字处理与信息管理中的广泛应用, 字符串已成为最常用的数据类型之一, 许多计算机中都提供字符串操作功能, 一些计算机还给出读写字
发表于 10-13 17:11
•3064次阅读
C语言字符串转数字实现方法
在C/C++语言中没有专门的字符串变量,通常用字符数组来存放字符串。字符串是以“\0”作为结束符。C/C++提供了丰富的字符串处理函数,下面
发表于 11-14 17:50
•1.3w次阅读
字符串移位包含的问题解决方案
问题:给定字符串s和t,判断是否字符串t能通过将s移位后的字符串所包含。 方法一 最简单的方法就是将s进行循环移位,再判断移位后的字符串是否
发表于 11-29 10:05
•1044次阅读
什么是复制字符串?Python如何复制字符串
连续几篇文章都在写 Python 字符串,这出乎我的意料了。但是,有的问题,不写不行,特别是那种灵机一动想到的问题,最后你发现,很多人根本不懂却又误以为自己懂了。那就继续刨根问底,探究个明白吧
发表于 11-25 10:32
•3011次阅读
strtok拆分字符串
大家好,我是惊觉,今天聊聊字符串。字符串的使用场景非常之多,人机交互和双机通信都会用到。比如:通过串口向单片机发送指令,以执行操作或配置参数。单片机读取传感器数据,数据格式是字符串。一般GPS数据
发表于 01-13 15:46
•8次下载
2.2 python字符串类型
2.2 python字符串类型 1. 如何定义字符串? 字符串是Python中最常用的数据类型之一。 使用单引号或双引号来创建字符串,使用三引号创建多行
字符串函数重写练习
字符串函数重写练习:字符串比较、字符串拼接、字符串查找、字符串拷贝、内存比较、内存拷贝、内存初始化、内存比较、二维数组定义及基本使用、位运算
一文详解JavaScript字符串
JavaScript字符串是原始值。此外,字符串是不可变的。这意味着如果你修改一个字符串,你总是会得到一个新的字符串。原始字符串不会被改变。
python字符串有哪些特定方法
python字符串序列操作也适用于列表和元组。
python字符串还有独有方法,即字符串对象的函数,其他对象不可调用,只有字符串对象可调用。
字符串的相关知识
TCL 中的数据类型只有一种:字符串。这些字符串可以是字母、数字、布尔值、标点符号等特殊字符的组合。在某些特殊命令的作用下,字符串可以向其他数据类型转换。下面将系统的讲解或回顾下
mysql字符串包含某个字符串
将详尽、详实、细致地探讨MySQL中字符串包含的实现方法。 在MySQL中,可以通过使用内建函数和通配符来实现字符串包含的操作。下面将详细介绍几种常用的方法: 使用LIKE通配符: L
labview字符串如何转换为16进制字符串
在LabVIEW中,将字符串转换为16进制字符串是一个常见的需求,尤其是在处理数据通信和硬件接口时。LabVIEW提供了多种方法来实现这一转换,包括使用内置函数、编写VI(Virtual
评论