续上节dd

本文探讨了链栈的数据结构特性,如头指针作为栈顶、无头结点、栈满问题的稀有性,以及插入和删除操作的栈顶特性和指针方向。同时,深入解析了递归问题的定义及其解决策略,包括递归条件、分治法的形式,并介绍了尾递归和自用栈模拟的方法。
摘要由CSDN通过智能技术生成

链栈

  • 链表的头指针就是栈顶
  • 不需要头结点
  • 基本不存在栈满的情况
  • 空栈相当于头指针指向空
  • 插入和删除仅在栈顶执行
  • 指针方向从a[n]指向a[1]

递归问题

条件:

  1. 能将一个问题转变成一个新问题 且新问题与原问题解法相同或类同 处理对象不同 但处理对象变化有规律
  2. 可以通过上述转化而使问题简化
  3. 必须有一个明确的递归出口 或称递归的边界

分治法一般形式

void p(参数表){

if(递归结束条件)可直接求解步骤;--------基本项

else p(较小的参数);------------归纳项

}

优点:结构清晰 程序易读

缺点:每次调用都要生成工作记录,保存状态信息,入栈;返回时要出栈,恢复状态信息。时间开销大。

解决方法①尾递归、单向递归->循环结构

②自用栈模拟系统的运行时栈

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值