<<数据结构与算法>>---笔记(5) ---栈的递归部分与队列(待排版)

本文探讨了递归问题的解决策略,特别是如何使用分治法求解,并介绍了如何通过引用循环队列避免假上溢。重点讲解了队列长度的计算方法,以及链队在不确定长度场景中的适用性,同时涉及了链队的链式操作原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

递归问题:用分治法来求解
注:分治法: 对于一个较为复杂的问题, 能够分解成几个相对简且解法相同或则和类似的子问题来求解
递归问题必备的三个条件:
1 ) 能将一个问题转变成一个新的问题, 而新问题与原问题的解法相同或类同, 不同的仅仅是处理的对象,且这些处理对象是变化有规律的
2 ) 可以通过上述转化而使问题简化
3 ) 必须有一个明确的递归边界 也可以叫做递归出口

递归的定义:
1 ) 若一个对象部分地包含它自己, 或用它自己给自己定义, 则称这个对象使递归的
2 ) 若一个过程直接或者间接地调用自己, 则称这个过程使递归的过程

递归的优缺点:
优点: 结构清晰, 程序易读
缺点: 时间效率较差



解决假上溢的方法—引用循环队列 (可以利用模(mod, C语言中: %)运算实现)

循环队列解决队满时判断方法—少用一个元素空间

求队列的长度, 说白就是求队列中元素的个数

链队—若用户无法估计所用队列的长度, 则适合采用链队列

链队列算法思想—从队头结点开始, 依次释放所有结点

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值