java多叉树_java中多叉树(tree)的生成与显示

先看看多叉树的表示吧。

一. 多叉树的表示:

由于要表示多个孩子,不能像二叉树那样一个leftchild,一个rightchild。当然你也可以选择采用孩子兄弟表示法来将多叉树转化成二叉树。但java提供了链表功能,能够允许设置不定数目的孩子,极大方便了多叉树的表示和实现。下面就是多叉树采用链表来表示孩子的表示方法:class treenode

{

String data;

treenode parent;

LinkedList childlist;

treenode()

{

data = null;

childlist = new LinkedList();

parent = null;

}

}

二. 多叉树的显示:

多叉树的显示是树的比较重要的一个方面,要以合理的方式进行展现出来,一般均采用深度遍历来显示。

private static void displaytree(treenode f, int level) { //递归显示树

String preStr = "";

for(int i=0; i

preStr += " ";

}

for(int i=0; i

treenode t = f.childlist.get(i);

System.out.println(preStr + "-"+t.data);

if(! t.childlist.isEmpty()) {

displaytree(t, level + 1);

}

}

}   注意到,改程序用到了递归来深度遍历,打印上采用了缩进的方式来显示父子关系。要注意到的是,为了让该程序能打印出总的根,在树的生成时,第一个节点设置为空,其孩子节点指向你的原来的根。这样,打印出来才是完整的。

三. 多叉树的生成:

多叉树的生成是树的应用的核心。多叉树的目的就是用来表示可能拥有多孩子的树状结构。

该实现方法主要基于两个方面:

1) java对象赋值是reference关系,改变的是同一棵树;

2) current指针总是指向要进行分析的节点,以便树的生长。

大体算法如下:

whole_root = root;

current = root;

while(list != null)

{

temp = list.pop();

current.childlist.add(temp);

current = temp;

// your program

}

这样就能够生成一棵以whole_root为根的树,采用displaytree()就可以打印出来了。

版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值