Java 如何修改抽象数据类型(ADT)堆栈?
使用堆栈接口定义,堆栈顶部是哪个字符串,底部是哪个字符串 我知道.push方法只是将所选项目添加到堆栈顶部,但我遇到的问题是,push方法中有pop方法,或者push方法中有peek方法 我还需要关于String name=stringStack.pop()的帮助Java 如何修改抽象数据类型(ADT)堆栈?,java,stack,abstract-data-type,Java,Stack,Abstract Data Type,使用堆栈接口定义,堆栈顶部是哪个字符串,底部是哪个字符串 我知道.push方法只是将所选项目添加到堆栈顶部,但我遇到的问题是,push方法中有pop方法,或者push方法中有peek方法 我还需要关于String name=stringStack.pop()的帮助 StackInterface stringStack=new MyStack(); stringStack.push(“Jane”); stringStack.push(“Jess”); stringStack.push(“吉尔”);
StackInterface stringStack=new MyStack();
stringStack.push(“Jane”);
stringStack.push(“Jess”);
stringStack.push(“吉尔”);
stringStack.push(stringStack.pop());
stringStack.push(stringStack.peek());
stringStack.push(“Jim”);
String name=stringStack.pop();
stringStack.push(stringStack.peek());
我希望订单是:
在这种情况下,吉姆·吉尔·吉尔·吉尔·杰斯·简·巴顿(Jim Jill Jess Jane BOTTOM):
stringStack.push( stringStack.pop());
您只需记住,push
必须在推送值之前知道要推送什么值。它如何知道要推动什么价值?当然,正在评估pop()
!因此,首先弹出一个项目,然后push
知道要推哪个项目,然后向后推。换句话说,push中的pop
对堆栈没有任何影响
那么:
stringStack.push( stringStack.peek());
这将只查看顶部项目,然后将其推到堆栈上,而不是弹出顶部项目,然后将其推到堆栈上。所以总的来说,这只是“复制”最上面的项目
以下是每行之后堆栈的外观(左侧为顶部):
不:吉姆在你把它弹下来后就不在书堆里了。有道理。谢谢你,莫里斯
stringStack.push( stringStack.peek());
stringStack.push( “Jane” );
// Jane
stringStack.push( “Jess” );
// Jess Jane
stringStack.push( “Jill” );
// Jill Jess Jane
stringStack.push( stringStack.pop());
// Jill Jess Jane
stringStack.push( stringStack.peek());
// Jill Jill Jess Jane
stringStack.push( “Jim” );
// Jim Jill Jill Jess Jane
String name = stringStack.pop();
// Jill Jill Jess Jane
stringStack.push( stringStack.peek());
// Jill Jill Jill Jess Jane