关于栈:java打印栈空间

6次阅读

共计 525 个字符,预计需要花费 2 分钟才能阅读完成。

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

System.out.println(obj);

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

public void printStack(Stack<TreeNode> stack){Stack<TreeNode> 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;}
}
正文完
 0