资讯专栏INFORMATION COLUMN

先序遍历去除树的特定节点

zhaot / 2499人阅读

摘要:树的遍历有先序,中序,后序。我用的最多的就是先序遍历,现在我们就如下的数据结构说一下先序遍历是怎么操作树的。以上是我的做法,大家有可优化的地方欢迎指出。

对于树的操作是平时用的最多的,任何操作都基于树的遍历。树的遍历有先序,中序,后序。我用的最多的就是先序遍历,现在我们就如下的数据结构说一下先序遍历是怎么操作树的。
我们现在的需求是去除LabelWithNum长度为0的父元素:

//按专题展示下去除没有标签的节点
    function removeNoneTag(data) {
        for (var i = 0, len = data.length; i < len; i++) {
            var secondData = data[i].StudyGroupWithTagNums;
            if (!!secondData && secondData.length > 0) {    //如果有子专题则继续向下遍历,如果没有直接判断该专题下有没有标签
                var temp = removeNoneTag(secondData);
                if (!!temp && temp.length == 0) {
                    if (data[i].LabelWithNum.length == 0) {
                        data.splice(i, 1);
                        len = data.length;
                        i -= 1;
                    }
                }
            } else {
                if (data[i].LabelWithNum.length == 0) {
                    data.splice(i, 1);
                    len = data.length;
                    i -= 1;
                }
            }
        }
        return data;
    }

这样我们拿到的结果就是去除LabelWithNum长度为0的元素集合。
以上是我的做法,大家有可优化的地方欢迎指出。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/108753.html

相关文章

  • 学习JavaScript数据结构与算法 — 树

    摘要:定义树同散列表一样,是一种非顺序数据结构。一个节点及其后代可以组成一个子树如图中的。方法允许传入子树一直遍历左侧子节点,直到底部搜索特定值搜索特定值的处理与插入值的处理类似。同理,找左侧子树的最大值替换上来也可以。 定义 树同散列表一样,是一种非顺序数据结构。现实中树的例子有家谱、公司组织架构图及其它树形结构关系。树由一系列节点构成,每个节点都有一个父节点(除根节点外)以及零个或多个子...

    shiguibiao 评论0 收藏0
  • 一篇文章学会二叉树和二叉查找树

    摘要:二叉树和二叉查找树一个父节点的两个子节点分别称为左节点和右节点。下图展示了一颗二叉树当考虑某种特殊的二叉树,比如二叉查找树时,确定子节点非常重要。实现二叉查找树定义对象。现在可以创建一个类来表示二叉查找树。因此二叉查找树也被叫做二叉排序树。 树是计算机科学中经常用到的一种数据结构。树是一种非线性的数据结构,以分层的方式存储数据。 树被用来存储具有层级关系的数据,比如文件系统中的文件。 ...

    BaronZhang 评论0 收藏0
  • Python数据结构——解析树及树的遍历

    摘要:左子树的加法运算结果为,右子树的减法运算结果为。如图,该图说明了随着每个新的字符被读入后该解析树的内容和结构。使函数走向基点的递归过程就是调用求值函数计算当前节点的左子树右子树的值。最后,我们将在图中创建的解析树上遍历求值。 解析树 完成树的实现之后,现在我们来看一个例子,告诉你怎么样利用树去解决一些实际问题。在这个章节,我们来研究解析树。解析树常常用于真实世界的结构表示,例如句子或数...

    miguel.jiang 评论0 收藏0
  • javascript数据结构

    摘要:数据结构栈一种遵从先进后出原则的有序集合队列遵从先进先出原则的有序项优先队列修改版的队列,设置优先级循环队列基于队列,克服假溢出想象的队列。这种数据结构非常方便,提供了一个便利的语法来访问它的元素。 javascript数据结构 栈 一种遵从先进后出原则的有序集合 队列 遵从先进先出原则的有序项 优先队列 修改版的队列,设置优先级 循环队列 基于队列,克服‘假溢出’想象的队列。例如队列...

    desdik 评论0 收藏0
  • 树和树的算法

    摘要:树和树的算法一树树的概念树英语是一种抽象数据类型或是实作这种抽象数据类型的数据结构,用来模拟具有树状结构性质的数据集合。一种时间复杂度额外空间复杂度的二叉树的遍历方式,为二叉树的节点个数。 树和树的算法 一、树 1.1 树的概念 树(英语:tree)是一种抽象数据类型(ADT)或是实作这种抽象数据类型的数据结构,用来模拟具有树状结构性质的数据集合。它是由n(n>=1)个有限节点组成一个...

    RaoMeng 评论0 收藏0

发表评论

0条评论

zhaot

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<