大话数据结构笔记————树
树:是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);//后序遍历将#行放到此行后面 }