黑马程序员技术交流社区
标题:
数据结构__二叉树遍历
[打印本页]
作者:
三眼皮
时间:
2014-3-4 00:13
标题:
数据结构__二叉树遍历
class TreeSetDemo
{
public static void main(String[] args)
{
TreeSet ts = new TreeSet();
ts.add(new Student("lisi02",22));
ts.add(new Student("lisi007",20));
ts.add(new Student("lisi09",19));
ts.add(new Student("lisi08",19));
//ts.add(new Student("lisi007",20));
//ts.add(new Student("lisi01",40));
Iterator it = ts.iterator();
while(it.hasNext())
{
Student stu = (Student)it.next();
System.out.println(stu.getName()+"..."+stu.getAge());
}
}
}
class Student implements Comparable//该接口强制让学生具备比较性。
{
private String name;
private int age;
Student(String name,int age)
{
this.name = name;
this.age = age;
}
public int compareTo(Object obj)
{
//return 0;
if(!(obj instanceof Student))
throw new RuntimeException("不是学生对象");
Student s = (Student)obj;
System.out.println(this.name+"....compareto....."+s.name);
if(this.age>s.age)
return 1;
if(this.age==s.age)
{
return this.name.compareTo(s.name);
}
return -1;
/**/
}
public String getName()
{
return name;
}
public int getAge()
{
return age;
}
}像这个TreeSet底层是一颗二叉树,有谁知道本程序是按先序遍历,后续遍历还是中序遍历,能举个例子更好
作者:
e.c
时间:
2014-3-4 08:38
TreeSet遍历的时候是从最左边开始的。
如果只是删除元素或添加元素,就是从中间开始。
作者:
薛旻
时间:
2014-3-4 10:56
我用下面代码说明
import java.util.*;
public class TreeSetDemo {
public static void main(String[] args) {
TreeSet<Integer> treeSet = new TreeSet<Integer>();
treeSet.add(5);
treeSet.add(9);
treeSet.add(8);
treeSet.add(4);
treeSet.add(7);
treeSet.add(2);
treeSet.add(3);
for (Iterator it = treeSet.iterator(); it.hasNext(); ) {
System.out.println(it.next());
}
}
}
复制代码
输入的顺序是 5,9, 8, 4, 7, 2, 3
输出顺序是自然排序的
看我附件的图,很明显它是中序遍历
无标题.png
(3.28 KB, 下载次数: 1)
下载附件
2014-3-4 10:55 上传
作者:
三眼皮
时间:
2014-3-5 23:13
伙计,,,谢了哈
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2