进栈出栈代码java 进栈出栈代码c++版( 二 )


s2 += stack.pop();
}
//输出结果
System.out.println("Middle Style: "+s1+"\nBackwards Style: "+s2);
}
}
我要用java实现一个栈 , 基本操作就是出栈入栈 。请问如何实现效率比较高 。//这是JDK提供的栈
import java.util.Stack;
public class UsingStack {
public static void main(String[] args) {
//构造栈对象,使用类型限制,只能存储Integer数据
StackInteger s = new StackInteger();
//1、2、3依次入栈
s.push(1);
s.push(2);
s.push(3);
//3、2、1依次出栈
System.out.println(s.pop());
System.out.println(s.pop());
System.out.println(s.pop());
}
}
//这是我写的顺序结构的栈
import java.util.EmptyStackException;
import java.util.Vector;
public class UsingStack{
public static void main(String[] args){
//构造栈对象 , 使用类型限制,只能存储Integer数据
MyStackInteger s = new MyStackInteger();
//1、2、3依次入栈
s.push(1);
s.push(2);
s.push(3);
//3、2、1依次出栈
System.out.println(s.pop());
System.out.println(s.pop());
System.out.println(s.pop());
}
}
/**
* 栈类
* @author developer_05
* @param T
*/
class MyStackT extends VectorT{
/**
* 构造方法
*/
public MyStack(){
}
/**
* 入栈方法
* @param item 待入栈的元素
* @return 返回入栈的元素
*/
public T push(T item) {
addElement(item);
return item;
}
/**
* 出栈方法(同步处理)
* @return 返回出栈元素
*/
public synchronized T pop() {
T obj;
int len = size();
if (len == 0)
throw new EmptyStackException();
obj = elementAt(len - 1);
removeElementAt(len - 1);
return obj;
}
/**
* 判断栈是否为空的方法
* @return 返回true(栈空)或false(栈非空)
*/
public boolean empty() {
return size() == 0;
}
private static final long serialVersionUID = 1L;
}
有没有哪位大神能告诉我一下,java stack 进栈出栈怎么写?public class MyStack {
private Node top;
public void push(Object o) {
if(top==null) {
top = new Node(o);
}else {
Node n = new Node(o);
n.setPre(top);
top = n;
}
}
public Object pop() {
if(top.getEntity()!=null) {
Object ret = top.getEntity();
top = top.getPre();
return ret;
}
return null;
}
public void printStack() {
Node n = top;
System.out.print("[");
while(n!=null) {
System.out.print(n.getEntity());
System.out.print(",");
n=n.getPre();
}
System.out.println("]");
}
public static void main(String[] args) {
MyStack s = new MyStack();
s.push(1);
s.push(2);
s.push("cat");
s.push("dog");
s.printStack();
s.pop();
s.printStack();
}
}
class Node {
private Node pre;
private Object entity;
public Node(Object entity) {
this.entity = entity;
}
public Node getPre() {
return pre;
}
public void setPre(Node pre) {
this.pre = pre;
}
public Object getEntity() {
return entity;
}
public void setEntity(Object entity) {
this.entity = entity;
}
}
关于进栈出栈代码java和进栈出栈代码c++版的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

推荐阅读