java打印栈空间

如果在一个黑盒的测试过程中,我们无法通过debug的方式来单步调试程序,那么怎么才能知道一个对象的值呢?通过print函数进行打印。对应的java语法就是:

System.out.println(obj);

对于一个对象或者一个数组对象是很容易通过打印或者遍历之后打印对象的值。那么对于栈的数据结构怎么遍历呢?以为遍历之后,栈中的每一个元素都要弹出栈,我们需要弹出之后再进行压栈的操作。那么有没有简单的方式进行操作呢?可以的!
方法就是通过copy栈中的数据,再遍历。那么有没有clone函数呢?我是没有找到(可以在研究下)。另外一个方式就是开辟一个新的空间,把栈当做对象添加到新的栈空间中。

public void printStack(Stack stack){
    Stack copy = new Stack<>();
    copy.addAll(stack);

    while(!copy.isEmpty()){
        System.out.println(copy.pop().val);
    }
}

public class TreeNode {
    int val;
    TreeNode left;
    TreeNode right;

    TreeNode(int x) {
        val = x;
    }
}

你可能感兴趣的:(栈打印clone)