根据访问结点操作发生位置命名:
① NLR:前序遍历(PreorderTraversal亦称(先序遍历)) ——访问根结点的操作发生在遍历其左右子树之前。
② LNR:中序遍历(InorderTraversal) ——访问根结点的操作发生在遍历其左右子树之中(间)。
③ LRN:后序遍历(PostorderTraversal) ——访问根结点的操作发生在遍历其左右子树之后。
注意:由于被访问的结点必是某子树的根,所以N(Node)、L(Left subtree)和R(Right subtree)又可解释为根、根的左子树和根的右子树。NLR、LNR和LRN分别又称为先根遍历、中根遍历和后根遍历。
前中后是指根结点的访问时机,在左右子树之前、中间或之后。
层序就是从根结点开始从上至下、从左到右地依次访问。
先上代码:
#include<stdio.h>
#include<stdlib.h>
#define Maxsize 100;
typedef int ElemType;
typedef struct BT
{
int data;
struct BT *lch, *rch;
} BT;
BT *CreatBT ();
void preorder (BT * T);
void inorder (BT * T);
void postorder (BT * T);
void leafnum (BT * T);
void ShowTree (BT * T);
void