早教吧作业答案频道 -->其他-->
求一个删除栈S中所有结点的算法voidClearStack,并计算所删去的结点个数。
题目详情
求一个删除栈S中所有结点的算法void ClearStack,并计算所删去的结点个数。
▼优质解答
答案和解析
使用面向对象语言设计的好处就是你不用去管栈里面是使用什么机制实现的,你只要组合它提供的几个方法就能实现。照你所说的要求,有一个很简单的办法,就是使用两个办法,一个是获取当前栈中的元素个数,就得到了个数,再使用第二个方法,是清除栈中的所有元素。就达到了你题目的要求。一般栈类都有这两个方法。如果没有,那也没关系,最最基本的栈,它至少也有进出栈方法,和判断栈满栈空方法,使用出栈方法结合判断栈空方法也能实现你的要求。由于我不知道你使用的是什么语言,我就给出个伪代码吧。(方法名和对象类型名你照套进去就行了,你都玩到栈了,这个肯定不是问题了。)/** * 删除栈中所有节点,并返回删去节点个数。 * 参数:stact ,要清空的栈对象 * 返回:删除的节点数目
*/public int clearStack(Stack stack){ int count = 0; // 如果栈未空,执行 while(!stack.是否空()){ // 出栈,如果需要获取出栈的值,可以给一个变量来接受,这里没有要求,所以直接出栈。 stack.出栈(); // 计数器自增 count++; } // 返回删除节点数目 return count;}调用改方法,执行完毕时,传入的栈对象 stack 将被清空,并且方法会返回删除节点数目。希望我回答的正是你所问的。
*/public int clearStack(Stack stack){ int count = 0; // 如果栈未空,执行 while(!stack.是否空()){ // 出栈,如果需要获取出栈的值,可以给一个变量来接受,这里没有要求,所以直接出栈。 stack.出栈(); // 计数器自增 count++; } // 返回删除节点数目 return count;}调用改方法,执行完毕时,传入的栈对象 stack 将被清空,并且方法会返回删除节点数目。希望我回答的正是你所问的。
看了 求一个删除栈S中所有结点的算...的网友还看了以下:
水下物体的直视视深度在水面下深度为h处的水底有一发光点S,从水面上S点的正上方看下去,S得像在离水 2020-06-06 …
sin与tan的交点在0~90度的范围内,除了“0”这个交点外外,另外的那个交点怎么算出来呢?怎么 2020-06-13 …
求一个删除栈S中所有结点的算法voidClearStack,并计算所删去的结点个数。 2020-06-18 …
拓扑关于基本群的,S^2去掉三个点跟Z*Z同构我学北大尤承业基础拓扑学讲义4章5节(基本群计算与应 2020-06-22 …
真空中有一均匀带正电球面,半径为R,电荷面密度为σ,在球面上挖去一小块面积(连同电荷)ΔS,则ΔS 2020-07-11 …
如图,为了估算河的宽度,我们可以在河对岸选定一个目标点P,在近岸取点Q和S,使点P、Q、S共线且直 2020-07-24 …
如图所示,一束光线射向O处的光学元件后,会聚在其主光轴上的S′点;当去掉光学元件后,光线会聚于S点. 2020-11-04 …
已知起点和终点,路径的长度,求有多少条这个长度的路径在一个无向图中,已知起点S和终点D,路径的长度N 2020-11-26 …
如图,为了估算河的宽度,我们可以在河对岸选定一个目标点P,在近岸取点Q和S,使点P、Q、S共线且直线 2020-12-19 …
关于电子转移的计算!14CuSO4+5FeS2+12H2O=7Cu2S+5FeSO4+12H2SO4 2020-12-26 …