有根有序树变成左儿子右二叉树

1 有根有序树的数据结构

struct tree{
    ElemType data; //树存储的数据
    int child[MAXSIZE]; //所有儿子
    int father; //父亲
    int d; //记录儿子个数
}tree[MAXSIZE];

2 二叉树的数据结构

typedef struct BtNode
{
   BtNode *leftchild;
   BtNode *rightchild;
   ElemType data;
}BtNode,*BinaryTree;

3 往二叉树中插入tree节点的流程图如下所示

n:数组tree的节点数
i:数组tree中的当前下标,当i=n时结束循环
j:表示遍历到第几个儿子
d:节点的总儿子数
如果有儿子就把第一个儿子插进左边,其余的儿子一直按顺序插进右边
有根有序树变成左儿子右二叉树

4 用例

有根有序树变成左儿子右二叉树