您的位置:首页 > 理论基础 > 数据结构算法

19-数据结构_树-存储

2013-08-03 15:00 10 查看
存储

1, 二叉树的存储

1) 连续存储[完全二叉树]



面临两个问题

A. 有效节点存到线性的结构(数组)

B. 将线性存储的有效结点还原成以前的树

解决这两个问题

A. 可通过先(中/后)序转换成线性结构

B. 用无效结点将二叉树补充成完全二叉树

综上:

A. 只有完全二叉树才可以用连续的方式来存储

B. 存储一般二叉树, 必须要将其补充为完全二叉树

完全二叉树以连续的方式存储的

优点:

某个结点的子结点和父节点的编号都能计算出来.

因此,判断是否有子结点,查找其父/子节点 非常快.

缺点:

非常耗内存

2) 链式存储

如图. 很容易理解



2, 一般树的存储

1) 双亲表示法

求父节点方便



2) 孩子表示法

求子结点方便



3) 双亲孩子表示法

求父结点子结点都很方便



4) 二叉树表示法[孩子兄弟表示法]

把一个普通书转换成二叉树来存储

转换方法:

保证任意一个结点

A. 左指针域指向它的第一个孩子

B. 右指针域指向它的下一个兄弟

只要满足此条件, 就可把普通树转换成二叉树

该二叉树一定没有右子树




3, 森林的存储

把森林转换为二叉树存储.

森林的所有树的根结点相互为兄弟.

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: