树的表示
树,现代计算机中常见的数据结构,诸如文件系统,等等,今天看数据结构一颗了解到一颗树的存储方式可以使用如下结构(叫做:儿子兄弟表示方法):
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版本里没有提倡这种做法。
对于第一种这样的表示方法,用图表示,可以表示成下面这样:
这是什么?不就是一颗二叉树么,于是,就可以探讨关于二叉树的那些算法了。
(未完待续)