树的存储结构 - 数据结构和算法41
树的存储结构
让编程改变世界
Change the world by program
树的存储结构
不好意思哈,这节课又需要大家搞脑子了。对于知识,你理解的越多,需要记住的就越少! 上节课我们简单的介绍了树结构的强大,这节课我们来关心一下如何在内存中安排树这种结构的存放。 说到存储结构,就会想到我们前面章节讲过的顺序存储和链式存储两种基本结构。 对于线性表来说,很直观就可以理解,但对于树这种一对多的结构,我们应该怎么办呢? 要存储树,简单的顺序存储结构和链式存储结构是不能滴!不过如果充分利用它们各自的特点,完全可以间接地来实现。 大家先思考下,如果你是总工程师,让你来设计和规划,你有多少种方法可以实现对树结构的存放? 当然你要考虑到双亲、孩子、兄弟之间的关系。 小甲鱼这里要介绍三种不同的表示法:双亲表示法、孩子表示法、孩子兄弟表示法。双亲表示法
双亲表示法,言外之意就是以双亲作为索引的关键词的一种存储方式。 我们假设以一组连续空间存储树的结点,同时在每个结点中,附设一个指示其双亲结点在数组中位置的元素。 也就是说,每个结点除了知道自己是谁之外,还知道它的粑粑妈妈在哪里。 那么我们可以做如下定义:parent.c![图片1](http://blog.fishc.com/wp-content/uploads/2013/03/图片11.jpg)
![2](http://blog.fishc.com/wp-content/uploads/2013/03/23.jpg)
![3](http://blog.fishc.com/wp-content/uploads/2013/03/33.jpg)