大话数据结构笔记————树

树:是n(n>=0)个结点的有限集。n=0时称为空树。

森林:是m(m>=0)棵互不相交的树的集合。

二叉树性质:

1.在二叉树的第i层至多有2^(i-1)个结点。

2.深度为k的二叉树至多有(2^k)-1个结点。

3.对于任何一棵二叉树,如其终端结点数为n0,度为2的界结点数为n2,则n0=n2+1。

4 具有n个结点的完全二叉树的深度为[log2n]+1 ([向下取整])

5.如果对一棵有n个结点的完全二叉树,结点按层序编号,对于任一结点,

i>1,则其双亲结点是[i/2];2i>n,i无左孩子,否则左孩子为2i;2i+1>n,i无右孩子,否则右孩子为2i+1。

二叉树结点结构定义

typedef struct BiTNode
{
   TElemType data;
   struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;

前序遍历

void PreOrderTraverse(BiTree T) {
  if(T==NULL)
     return;

  printf("%c",T->data);         //#行
  PreOrderTraverse(T->lchild);//中序遍历将#行放到此行后面
  PreOrderTraverse(T->rchild);//后序遍历将#行放到此行后面
}

 

posted @ 2018-09-20 16:43  kyun  阅读(126)  评论(0编辑  收藏  举报