1.设计一个递归算法,删除不带头结点的单链表L中的所有值为x的结点。
解:设f(L,x)的功能是删除以L为首结点指针的单链表中所有值等于x的结点,显然f(L->next,x)的功能是删除以L->next为首结点指针的单链表中所有值等于x的结点。由此,可以推出递归模型如下。
终止条件:f(L,x)≡不做任何事情; 若L为空表
递归主体:f(L,x)≡删除*L结点;f(L->next,x); 若L->data == x
f(L,x)≡f(L->next,x); 其他情况
下面展示一些 代码。
void Del_X3(Linklist &L,ElemType x){
//递归实现在单链表L中删除值为X的结点
LNode *p;
if(L

本文深入探讨了链表的多种操作技巧,包括递归删除特定值的节点、判断链表长度、反向输出链表以及不同链表结构下插入和删除元素的效率分析,提供了丰富的代码示例。
最低0.47元/天 解锁文章
2692

被折叠的 条评论
为什么被折叠?



