知识大全 栈和队列 - 栈和队列的应用实例 - 栈的应用实例(二)
Posted 函数
篇首语:时人不识凌云木,直待凌云始道高。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 栈和队列 - 栈和队列的应用实例 - 栈的应用实例(二)相关的知识,希望对你有一定的参考价值。
栈与递归
( ) 递归
所谓 递归 是指 若在一个函数 过程或者数据结构定义的内部 直接(或间接)出现定义本身的应用 则称它们是递归的 或
者是递归定义的
递归是一种强有力的数学工具 它可使问题的描述和求解变得简洁和清晰
递归算法常常比非递归算法更易设计 尤其是当问题本身或所涉及的数据结构是递归定义的时候 使用递归算法特别合适
( )递归算法的设计步骤
第一步骤(递归步骤) 将规模较大的原问题分解为一个或多个规模更小 但具有类似于原问题特性的子问题 即较大的问题递
归地用较小的子问题来描述 解原问题的方法同样可用来解这些子问题
第二步骤 确定一个或多个无须分解 可直接求解的最小子问题(称为 递归的终止条件 )
【例】非负整数n的阶乘可递归定义为
>
( )栈在递归算法的内部实现中所起的作用
①调用函数时 系统将会为调用者构造一个由参数表和返回地址组成的活动记录 并将其压入到由系统提供的运行时刻栈的栈
顶 然后将程序的控制权转移到被调函数 若被调函数有局部变量 则在运行时刻栈的栈顶也要为其分配相应的空间 因此 活动记
录和这些局部变量形成了一个可供被调函数使用的活动结构
注意
>
参数表的内容为实参 返回地址是函数调用语句的下一指令的位置
②被调函数执行完毕时 系统将运行时刻栈栈顶的活动结构退栈 并根据退栈的活动结构中所保存的返回地址将程序的控制权
转移给调用者继续执行
【例】Factorial( )递归函数执行期间运行时刻栈的变化(不考虑局部变量temp的入出栈情况)
cha138/Article/program/sjjg/201311/23918相关参考
知识大全 栈和队列 - 栈和队列的应用实例 - 队列的应用实例
队列的应用舞伴问题 问题叙述 假设在周末舞会上男士们和女士们进入舞厅时各自排成一队跳舞开始时依次从男队和女队的队头上各出一人配成舞伴 若两队初始人数不相同则较长的那一队中未配对者等待下一轮舞
栈和队列的应用非常之广只要问题满足后进先出和先进先出原则均可使用栈和队列作为其数据结构栈的应用数制转换 将一个非负的十进制整数N转换为另一个等价的基为B的B进制数的问题很容易通过除B取余法来解决
栈和队列是两种特殊的线性表它们的逻辑结构和线性表相同只是其运算规则较线性表有更多的限制故又称它们为运算受限 的线性表栈和队列被广泛应用于各种程序设计中 栈的定义及基本运算 栈的定义 栈(S
栈与队列的比较 栈与递归cha138/Article/program/sjjg/201311/23214
链栈 栈的链式存储结构称为链栈 链栈的类型定义 链栈是没有附加头结点的运算受限的单链表栈顶指针就是链表的头指针 > 链栈的类型说明如下 typedefstructstacknode
顺序栈 栈的顺序存储结构简称为顺序栈它是运算受限的顺序表 顺序栈的类型定义 #defineStackSize//假定预分配的栈空间最多为个元素 typedefcharDataType;//
栈和队列是两种特殊的线性表它们的逻辑结构和线性表相同只是其运算规则较线性表有更多的限制故又称它们为运算受限的线性表栈和队列被广泛应用于各种程序设计中栈的定义及基本运算栈的定义  
第四章栈和队列 本章介绍了栈的定义以及栈的基本操作的实现特别介绍了栈与递归的关系以及栈和递归在问题求解中的作用本章还介绍了队列的定义队列的存储桔构队列基本操作的实现特别介绍了循环队列及其应用以及其它
一个栈的输入序列为则下列序列中不可能是栈的输出序列的是( )【南开大学一】【山东大学二(分)】【北京理工大学一(分)】 A &
第三章栈和队列 栈 栈的定义及基本运算 栈是限制仅在表的一端进行插入和删除运算的线性表又称为后进先出表(LIFO表)插入删除端称为栈顶另一端称栈底表中无元素称空栈基本运算有 )initst