块链串的插入与删除操作【C语言】

本文介绍了如何在C语言中处理块链串的插入与删除操作。具体包括在链串的第k个字符后插入另一个串T,以及从第k个字符开始删除指定长度len的字符。
摘要由CSDN通过智能技术生成

块链串的插入与删除操作【C语言】

题目:

__S是用结点大小为4的单链表存储的链串,试实现:
(1)在第k个字符后插入串T
(2)从第k个字符删除len个字符
__

时间复杂度为任意 空间复杂度为任意
代码:
/*3-1*/
#include <stdio.h>
#include <stdlib.h>
#define size 4
#define Seqsize 100
int num=0;
typedef struct
{
   
    char ch[Seqsize];
    int len;
}Seqstring;
typedef struct Node
{
   
    char ch[size];
    struct Node *next;
}Node;
typedef struct
{
   
    Node *head;
    Node *tail;
    int len;
}Linkstring;
void Initstring(Linkstring *S)
{
   
    S->len=0;
    S->head=S->tail=NULL;
}
void Create(Linkstring *S)
{
   
    if(S->len==0)
    {
   
        return;
    }
    /*计算节点数*/
    int j=1;
    if(S->len>=size)
    {
   
        j=(S->len)/size;
        if((S->len)%size!=0)
        {
   
            j++;
        }
    }
    /*结点赋值*/
    Node *p,*q=NULL;
    int i;
    for(i=0;i<j;i++)
    {
   
        p=(Node*)malloc(sizeof(Node));
        if(p==NULL)
        {
   
            return;
        };
        int k;
        if(i!=j-1)
        {
   
            for(k=0;k<size;k++)
            {
   
                scanf(" %c",&p->ch[k]);
            }
        }
        else
        {
   
            int NUM=S->len-((i)*size);
            for(k=0;k<NUM;k++)
            {
   
                scanf(" %c",&p->ch[k]);
            }
            p->ch[k+1]='\n';
        };
        if(i==0)
        {
   
            S->head=p;
            q=S->head;
            if(j=
  • 1
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值