早教吧作业答案频道 -->其他-->
求一个删除栈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中所有结点的算...的网友还看了以下:
s v e o l 由这五个字母组成的英文字 2020-05-16 …
给定数据结构(V,E),y为节点的有限集合,V={V1,V2,V3,V4,V5,V6,V7,V8), 2020-05-26 …
给定数据结构(V,E),V为结点的有限集合,V={V1,V2,V3,V4,V5,V6,V7,V8), 2020-05-26 …
D,E,E,E,L,L,L,L,O,O,O,R,R,S,S,V把所给的字母填入方格中,使横向,纵向 2020-06-06 …
以M,V,E,M,J,S,U,N,P为首字母造句,英语强悍的来例子:"Myveryexccelle 2020-07-03 …
英语翻译我们建议是给S.V.E.DrillingTools和SrinivasaRockTools这 2020-07-23 …
探求凸多面体的面F、顶点数V和棱数E之间的关系得到的结论是()A.无确定关系B.F+E-V=2C. 2020-07-29 …
欧拉公式中,多面体的面数F,棱数E,顶点数V之间的正确关系是()A.F+V-E=2B.F+E-V=2 2020-11-18 …
组合英语单词:1.r,i,v,r,d,e2.t,i,w,e,h3.a,v,e,s,4.c,t,k,e 2020-11-29 …
寻个英文单词找个英文单词.里面包含S.V.E这三个字母.记得附上中文意思``有没有不是S打头的。但是 2021-01-25 …