最近参加了学校的网页设计大赛,做了一个论坛网站,期间后台的多级评论用了我很多时间,什么是多级评论呢,也就是针对某一条评论,其他用户都可以在该评论基础上回复对方,这样也就形成了一条树形结构,我用了递归来实现树的遍历,感觉这个算法很有用,在许多方面都有可能用到,比如说像QQListView分组显示都可以用它来实现。
具体实现思路:
1、通过构建节点来记录数据,节点要求:记录父节点;记录自身节点,记录子节点,记录节点所在树。
2、将已经记录了信息的节点保存到集合表中,对集合表进行遍历排序。
3、将排好序的集合表用于项目中遍历显示。
接下来给大家展示核心代码:
我还是来一张网站多级评论图片(嘿嘿):
一、Node类:
public class Node
{
private int id;//自己的id,-1时表示叶子节点
private int p_id;//父节点id,0时表示根节点
private int root_number;//这个是每条树的唯一标识,表示该节点所在根
private Node parent;//记录父节点,每个节点只有一个父节点
private List<Node> children;//记录子节点,子节点可以有多个
//其他属性根据具体需求添加,以上都是必须的
public Node(int id, int p_id, int root_number)
{
this.id = id;
this.p_id = p_id;
this.root_numbe