复习四:线性表综合题

本文探讨了递归的边界条件与调用在解决链表问题中的应用,包括删除元素、元素逆序以及处理重复元素的方法。同时,强调了删除节点时的空间释放和数据结构技巧。通过实例解析,深入浅出地展示了这些关键概念的实际操作。
摘要由CSDN通过智能技术生成

 分析:容易看岔题目,题目要求删除的空位由最后一元素填补,

        由函数返回被删除元素的值有两种表示方式:

                ①用return返回该元素值;

                ②用“&”改变函数参数值【如下代码所示】

 

分析:将元素逆置for循环条件有两种表达方式:

                ①for(i=0;i<L.length/2;i++)交换L.data[i]与L.data[L.length-i-1];

                ②for(i=0,j=L.length-1;i!=j;i++,j--)   交换L.data[i]与L.data[j] 

 

 分析:删除相同元素X的两种解法:【辅助变量k】

                ①k记录不等于X的元素个数【即需要保存的元素个数】:

                                if(L.data[i]!=X) { L.data[k]=L.data[i];k++; }

                ②k记录等于X的元素个数【即需要删除的元素个数】:

                                if(L.data[i]==X) k++;else L.data[i-k]=L.data[i];

               

 

 

 


 分析:

删除链表中的结点时注意释放该结点空间【free(p);】

递归的核心:①递归的边界条件【也就是递归的结束条件】

                      ②递归调用【主要找规律,先确定单次循环】

 

 

分析:

“逆向”可以联想 ——栈,递归 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值