树的表示

树,现代计算机中常见的数据结构,诸如文件系统,等等,今天看数据结构一颗了解到一颗树的存储方式可以使用如下结构(叫做:儿子兄弟表示方法):

class Tree{
    constructor(nodeValue,firstChild,nextSibiling){
        this.node = nodeValue;
        this.firstChild = firstChild;
        this.nextSibiling = nextSibiling;
    }
}

当为根结点的时候nextSibiling的值为null,当为叶子结点的时候firstChild的值为null。

当然除了这种表示方法之外,还有其他的表示方法,影响较深的一种是下边这种结构:

class Tree{
    constructor(nodeValue,children){
        this.node = nodeValue;
        this.children = children;
    }
}

其中children表示这个节点的所有子节点的集合,在c语言版本里有几个子节点就给他几个指针,这些指针存在一个数组里,但是这样做了之后,有一个问题很难保证:就是一个节点的子节点到底有多少个不能保证,所以指针数组的长度是这个树的度,而这样做了之后就很容易产生多个空指针,造成空间浪费。所以c版本里没有提倡这种做法。

对于第一种这样的表示方法,用图表示,可以表示成下面这样:

树.jpg


这是什么?不就是一颗二叉树么,于是,就可以探讨关于二叉树的那些算法了。

(未完待续)

posted @ 2017-11-19 17:26  子龙_子龙  阅读(10)  评论(0编辑  收藏  举报