一、普通遍历
public void test05(){
MyLinkedStack<String> myStack = new MyLinkedStack<String>();
myStack.push("1");
myStack.push("2");
myStack.push("3");
myStack.push("4");
//如果这么写会出现问题
int x = myStack.length();
for(int i = 0; i < x; i++){
System.out.print(myStack.pop()+" ");
}
}
二、递归遍历
//测试栈的递归遍历
@Test
public void test04(){
MyLinkedStack<String> myStack = new MyLinkedStack<String>();
myStack.push("1");
myStack.push("2");
myStack.push("3");
myStack.push("4");
//深度优先遍历
dfs(myStack);
}
//深度优先遍历
public void dfs(MyLinkedStack<String> myStack){
if(myStack.length() == 0){
return ;
}
System.out.print(myStack.pop()+" ");
dfs(myStack);
}
一开始我觉得栈的递归遍历有多么高深,其实递归最重要的是找到一个递归出口。