0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

链式存储字符串的简单实现

冬至子 来源:计算机科学实验室 作者:好坏生长 2023-01-18 10:51 次阅读

除了顺序串,还有链串,所谓链串,就是链式存储的字符串。

2.jpg

下面是链串的简单实现

// 链串


#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

    文章

    898

    浏览量

    50589
  • 字符串
    +关注

    关注

    1

    文章

    552

    浏览量

    20135
收藏 人收藏

    评论

    相关推荐

    请问labviEW怎样能循环显示不同的字符串

    ` 本帖最后由 我爱tmac 于 2012-3-29 11:30 编辑 我想让字符串3循环显示字符串1和字符串2的字符,显示间隔为1秒,为什么不能
    发表于 03-29 11:27

    字符串存储相关问题

    本帖最后由 小凡1314 于 2013-5-15 09:48 编辑 从单片机采集字符串数据,现在数据可以正确采集显示,可是为什么存储的时候有错误,我的所有的采样点存储以后都变成48了,无论踩的是多少,求大神解答!!谢谢!!
    发表于 05-15 09:42

    C语言字符串函数详解

    , 函数返回string值.char *strdup(const char *strSource);函数运行中会自己调用malloc函数为复制strSource字符串分配存储空间, 然后再
    发表于 06-23 23:33

    如何用”扫描字符串“控件实现字符串的拆分

    如图所示,如何用”扫描字符串“控件实现字符串的拆分?
    发表于 04-29 21:30

    字符串公式求值)

    设计一个VI,输入端为一个字符串控件,输出端为一个数值显示控件。要求输出控件显示的是输入字符串中表达式的结果,如下图所示。所有算法建议在子VI内实现,这样可以多次调用。(字符串公式求值
    发表于 08-05 13:27

    串口读取的字符串字符串输入控件输入的字符串的差别

    发现很多时候串口读取的字符串字符串输入控件输入的字符串虽然看着一样,但是要进行后续操作的话,却总是不一样的。大家有过这种感受吧,知道什么原因 吗?
    发表于 06-06 11:44

    labview字符串输入指定字符

    大家伙,问大家一个问题哇!我想实现下面的功能,怎么做啊?1、字符串可以实现输入0-9和H z k M G d B 字符,大小写忽略2、字符串
    发表于 04-05 10:21

    怎样将已经输入的字符串存储在数组——字符串

    怎样将已经输入的字符串存储在数组——字符串中,或类似的存储一段文章?
    发表于 05-05 08:42

    数据转换、SQL存储,十六进制字符串、正常字符串

    转换为字节数组,再使用数值转字符串,注意,此时需要规定宽度,之后将字符串数组连接起来就可以了。下面既是将正常显示的字符串转回十六进制,相当于还原数据,此时这里的除数就是之前使用的宽度值这样就
    发表于 05-27 10:29

    如何将一维字符串数组里的字符串转成下拉列表?

    如题,本人做了一个一维字符串数组来存储IP字符串,现在想建一个下拉列表,用这个列表显示多个IP地址,能向列表里添加数组里的IP字符串,求助大神们如何解决?
    发表于 05-27 20:58

    如何实现字符串函数?

    你好 我使用STM8S发现套件和标准固件库。我需要使用字符串函数,如strtok()。如何让这些功能在这种环境中工作。包括string.h不会工作。我需要实现字符串函数还是有更简单的方
    发表于 07-09 08:37

    labview字符串转换

    ` 本帖最后由 jingzhaojun1986 于 2020-6-12 13:58 编辑 ,这个库多用于协议解析,主要实现了16进制字符串到正常字符串的显示正常字符串转换为16进制
    发表于 05-19 11:50

    什么是指向字符串指针?

    组成的句子,在C语言中被称为“字符串”。  了解完字符串是由多个字符组成的之后,想要存储字符串就变得非常容易了,我们只需要定义多个变量来
    发表于 03-15 14:19

    字符串字符串数组实现对汉字的分割

    输入字符串,输出字符串数组,实现对汉字的分割.
    发表于 12-23 14:09

    聊聊字符串

    大家好,我是惊觉,今天聊聊字符串字符串的使用场景非常之多,人机交互和双机通信都会用到。比如:通过串口向单片机发送指令,以执行操作或配置参数。单片机读取传感器数据,数据格式是字符串。一般GPS数据
    发表于 02-28 06:52