树与二叉树的相互转换以及森林和二叉树的相互转换
一、孩子兄弟表示法
在介绍这两种转换前我想先说一下:树的存储结构—孩子兄弟表示法
二叉树 (二叉链表)表示法
: 链表中结点的两个链域分别指向该结点的第一个孩子和下一个兄弟。结点结构:
firstchild |
data |
nextsibling |
---|
树的二叉链表存储(孩子兄弟表示法)结构体表示:
typedef struct CSNode
{
ElemType data;
struct CSNode *firstchild, *nextsibling;
}CSNode,*CSTree;
孩子兄弟表示法的优点
:易于找结点孩子; 缺点
:不易查找结点的双亲,破坏了树的层次
二、树与二叉树的相互转换(1)