递归问题:用分治法来求解
注:分治法: 对于一个较为复杂的问题, 能够分解成几个相对简且解法相同或则和类似的子问题来求解
递归问题必备的三个条件:
1 ) 能将一个问题转变成一个新的问题, 而新问题与原问题的解法相同或类同, 不同的仅仅是处理的对象,且这些处理对象是变化有规律的
2 ) 可以通过上述转化而使问题简化
3 ) 必须有一个明确的递归边界 也可以叫做递归出口
递归的定义:
1 ) 若一个对象部分地包含它自己, 或用它自己给自己定义, 则称这个对象使递归的
2 ) 若一个过程直接或者间接地调用自己, 则称这个过程使递归的过程
递归的优缺点:
优点: 结构清晰, 程序易读
缺点: 时间效率较差
解决假上溢的方法—引用循环队列 (可以利用模(mod, C语言中: %)运算实现)
循环队列解决队满时判断方法—少用一个元素空间
求队列的长度, 说白就是求队列中元素的个数
链队—若用户无法估计所用队列的长度, 则适合采用链队列
链队列算法思想—从队头结点开始, 依次释放所有结点