关于N叉树的遍历

来源:6-13 更多二分搜索树相关话题

丶远走高飞

2018-06-25

http://img.mukewang.com/szimg/5b304b670001be8608520312.jpg

该表为评论comment表,其中有id字段与parant_id

parent_id是用来标识该条评论是回复的哪一条评论,所以该表为一对多递归

所以该表既保存不是回复的评论,也保存是回复的评论。

不是回复的评论 可SELECT *  WHERE parent_id is null 查询出来

————————————————————————————

而我的java POJO是这样的

http://img.mukewang.com/szimg/5b304c570001158204890139.jpg

我需要将该评论的所有回复查询出来 然后放在一个叫做 comments的list里。

我对比着数据库结构想了想,这差不多像是一个N叉树的遍历问题,因为首先我不知道N为多少,因为回复某条评论的条数可能参差不齐,然后这个树有多深,我不清楚,因为回复是可以嵌套的,嵌套多少层我是不清楚的。

跟着老师学了二叉树的遍历后,自己写了递归遍历与非递归的遍历 如下:

http://img.mukewang.com/szimg/5b304d5f0001cbf405890299.jpg

http://img.mukewang.com/szimg/5b304d5f0001a7ff06840301.jpg

http://img.mukewang.com/szimg/5b304d5f000124c905510186.jpg

请老师过目下,然后自己也测试过 这两个方法都可以递归查询出 评论以及它的回复以及它回复的回复等等的嵌套,测试是通过的。

发这个问题的目的在于:想问下老师 一般遇到这样的需求是如何写算法的

写回答

2回答

liuyubobobo

2018-06-25

大赞灵活运用学习到的算法知识解决实际生产环境中的问题!:)


遇到这种需求如何写算法?你已经做得很好了啊!应该邀请你专门讲讲这个问题啦!

你已经可以根据自己实际解决这个实际问题的过程,再补充一下更详细的逻辑细节,发表一篇很不错的博客啦!有兴趣可以试试看:)如果你发表在慕课网的手记上,我可以试试找慕课网的运营同学帮你推荐一下:)

1
4
liuyubobobo
回复
丶远走高飞
也谢谢你的支持:)作为大三的学生,重视内功的学习,也玩儿框架,还能把二者结合起来思考,很了不起啦!好好准备一下,面试是小意思:)加油!
2018-06-25
共4条回复

ITdoge

2018-08-19

想知道n是多少可以yongsql查出来呀,select count(*) from comment group by parent id

0
0

玩转数据结构

动态数组/栈/队列/链表/BST/堆/线段树/Trie/并查集/AVL/红黑树…

6221 学习 · 1704 问题

查看课程