树形递归遍历实现多级评论

本文介绍了如何在网页设计大赛的论坛网站后台实现多级评论功能,利用递归算法进行树形遍历。首先构建包含父节点、自身节点、子节点和所在树信息的节点,然后将节点保存到集合并排序,最后遍历显示。核心代码包括Node类和NodesHelper类的遍历排序方法,采用C#编写,适用于其他语言。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近参加了学校的网页设计大赛,做了一个论坛网站,期间后台的多级评论用了我很多时间,什么是多级评论呢,也就是针对某一条评论,其他用户都可以在该评论基础上回复对方,这样也就形成了一条树形结构,我用了递归来实现树的遍历,感觉这个算法很有用,在许多方面都有可能用到,比如说像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_number = root_number;
    }

    public int 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值