将一棵树转化为二叉树 第三部分 树与二叉树[3]
![将一棵树转化为二叉树 第三部分 树与二叉树[3]](http://img.zhputi.com/uploads/56cb/56cbc53be6f7dc7653a7799a6e102ec292484.jpg)
第三部分 树与二叉树[3]
性质 具有n个结点的完全二叉树的深度为log n+ 性质 对一棵具有n个结点的完全二叉树中从 开始按层序编号 则对于任意的序号为i( ≤i≤n)的结点(简称为结点i) 有 ( )如果i> 则结点i的双亲结点的序号为i/ 如果i= 则结点i是根结点 无双亲结点 ( )如果 i≤n 则结点i的左孩子的序号为 i 如果 i>n 则结点i无左孩子 ( )如果 i+ ≤n 则结点i的右孩子的序号为 i+ 如果 i+ >n 则结点i无右孩子 二叉树的顺序存储结构和链式存储结构 顺序存储结构 // 二叉树的顺序存储表示 #define MAN_TREE_SIZE Typedef TElemType SqBiTree[MAX_TREE_SIZE]; SqBiTree 链式存储结构 // 二叉树的二叉链表表示 Typedef struct BiTNode{ TelemType data; struct BiTNode *lchild *rchild; }BiTNode *BiTree; 二叉树的遍历 先序遍历(递归) Status PreOrderTraverse(BiTree T Status(*Visit)(TelemType e)); { if(t){ if(visit(T >data)) if(PreOrderTraverse(T >lchild Visit)) if(PreOrderTraverse(T >rchild visit))return ok; return ERROR; }else return ok; }//PreOrderTraverse
lishixinzhi/Article/program/sjjg/201311/23654