字符串采用带头结点的单链表存储,设计算法在字符串S中删除从第i个位置开始,长度为len的字串;
时间: 2024-05-12 13:19:14 浏览: 45
3-2 试编写一个算法,在带表头结点的单链表中寻找第i个结点.doc
1. 首先,需要找到第i个节点的前一个节点p和第i+len个节点q。
2. 将p的next指针指向q的next节点,即跳过了需要删除的节点。
3. 释放被删除的节点的空间。
4. 返回原链表的头节点。
代码实现:
```
void deleteSubStr(LinkList &S, int i, int len) {
if (i < 1 || len < 1) {
return;
}
LNode *p = S;
for (int j = 1; j < i && p != NULL; j++) {
p = p->next;
}
if (p == NULL || p->next == NULL) {
return;
}
LNode *q = p->next;
for (int j = 1; j <= len && q != NULL; j++) {
LNode *temp = q;
q = q->next;
free(temp);
}
p->next = q;
}
```
阅读全文