标签:分层 存储 node tle tab pop 中序遍历 代码托管 定义
正文
20182311 2019-2020-1 《数据结构与面向对象程序设计》第9周学习总结 |
后序遍历:先左子树,后右子树,再根节点
public void preorderTraverse(){
//非递归实现先序遍历
Node t=root;
Node top;
Stack<Node> stack=new Stack<Node>();
while(t!=null||!stack.isEmpty()){
while(t!=null){
System.out.print(t.getData()+"\t");
stack.push(t);
t=t.getLeft();
}
top=(Node)stack.peek();
stack.pop();
t=top.getRight();
}
}
public static void preOrderRe(Node t)
{//递归实现前序遍历
System.out.print(t.getData()+"\t");
Node leftTree = t.getLeft();
if(leftTree != null){
preOrderRe(leftTree);
}
Node rightTree = t.getRight();
if(rightTree != null){
preOrderRe(rightTree);
}
}
public void midorderTraverse(){
//非递归实现中序遍历
Node t=root;
Stack<Node> stack=new Stack<Node>();
while(t!=null||!stack.isEmpty()){
while(t!=null){
stack.push(t);
t=t.getLeft();
}
t=(Node)stack.peek();
stack.pop();
System.out.print(t.getData()+"\t");
t=t.getRight();
}
}
public static void midOrderRe(Node t)
{//递归实现中序遍历
Node leftTree = t.getLeft();
if(leftTree != null){
midOrderRe(leftTree);
}
System.out.print(t.getData()+"\t");
Node rightTree = t.getRight();
if(rightTree != null){
midOrderRe(rightTree);
}
}
public void lasorderTraverse(){
//非递归实现后序遍历
Node t=root;
Node top,last=null;
Stack<Node> stack=new Stack<Node>();
while(t!=null||!stack.isEmpty()){
while(t!=null){
stack.push(t);
t=t.getLeft();
}
top=(Node)stack.peek();
if(top.getRight()==null||top.getRight()==last){
stack.pop();
System.out.print(top.getData()+"\t");
last=top;
}
else{
t=top.getRight();
}
}
}
public static void lasOrderRe(Node t)
{//递归实现后序遍历
Node leftTree = t.getLeft();
if(leftTree != null){
lasOrderRe(leftTree);
}
Node rightTree = t.getRight();
if(rightTree != null){
lasOrderRe(rightTree);
}
System.out.print(t.getData()+"\t");
}
public void seqTraverse(Node t){
//利用队列先进先出实现层级遍历
Queue<Node> queue=new LinkedList<Node>();
queue.add(t);
while(!queue.isEmpty()){
Node q=queue.peek();
queue.remove();
if(q.getLeft()!=null){
queue.add(q.getLeft());
}
if(q.getRight()!=null){
queue.add(q.getRight());
}
System.out.print(q.getData()+"\t");
}
}
问题1:返回空指针异常和0>1错误
问题1解决方案:习惯规定search方法未找到元素返回-1,造成copyOf里面会出现(0,1)的情况。把未找到元素的返回值设置为1即可。
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 10000行 | 30篇 | 400小时 | |
第一周 | 246/246 | 2/2 | 30/30 | 初步掌握linux命令、java小程序和jdb调试 |
第二周 | 73/319 | 3/3 | 30/60 | |
第三周 | 906/1225 | 3/6 | 20/80 | |
第四周 | 748/1973 | 2/8 | 20/100 | |
第五周 | 849/2822 | 2/10 | 20/120 | |
第六周 | 962/ 3784 | 2/12 | 30/150 | |
第七周 | 1883/5668 | 3/15 | 50/200 | |
第八周 | 579/6247 | 1/16 | 30/230 | |
第九周 |
20182311 2019-2020-1 《数据结构与面向对象程序设计》第9周学习总结
标签:分层 存储 node tle tab pop 中序遍历 代码托管 定义
原文地址:https://www.cnblogs.com/lengchong/p/11873918.html