​欢迎访问我的PAT技巧篇​

先序遍历(中->左->右)

void preorder(node* root){
if(root==NULL)return;
printf("%d",root->data);
preorder(root->lchild);
preorder(root->rchild);
}

中序遍历(左->中->右)

void preorder(node* root){
if(root==NULL)return;
preorder(root->lchild);
printf("%d",root->data);
preorder(root->rchild);
}

后序遍历(左->右->中)

void preorder(node* root){
if(root==NULL)return;
preorder(root->lchild);
preorder(root->rchild);
printf("%d",root->data);
}

层次遍历

void BFS(int root){//静态树
queue<int> q;
q.push(root);
while(!q.empty()){
int now=q.front();
q.pop();
printf("%d",now);
if(Node[now].lchild!=-1)q.push(Node[now].lchild);
if(Node[now].rchild!=-1)q.push(Node[now].rchild);
}
}