QQ网名大全

假设字符串储存在带表头结点的单链表中,编写删除串str从位置i开始长度为k的子串的算法

1判断参数是否合法,合法进行下面操作
2.从头结点遍历到第i个位置,定义一个变量,把第i-1个位置的结点保存下来,取名p1
3.继续遍历到第i+k个结点,把第i+k个结点(即最后要删除的结点)保存下来,取名p2
4将p1的指针域指向p2,即p1->next = p2,如果是c语言的话还要释放不用的结点占用的存储空间,
int delete(LinkList h,int begin,int len){//带都结点
if(head==null) return 0;
if(begin<=0||len<=0) return 0;
if(begin+(len-1)>链表长度) return 0;
Node L= h;
Node p1;//放开始删除位置前面的一个结点
Node p2;放第i+k个结点(头结点记为第零个结点)
int count = 0;//记录遍历的结点个数
while(count<=begin+len){//循环count从0到最后一个要删除的字符后面的一个字符
if(count==begin-1) p1 =L;
if(count==begin+len){ p2=L;break;}
L=L.next;
count++;
}
p1.next = p2;
return 1;
}
佚名
2024-06-06 21:55:48
最佳回答
类似问题(10)