本文主要是介绍复赛准备 - 二叉树的遍历,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
给出一个n个节点的二叉树,请求出二叉树的前序遍历,中序遍历和后序遍历。
#include <bits/stdc++.h>
using namespace std;
const int N = 1e3;
int cnn;
int root;
struct node
{char data;int left, right, father;
} tree[N];
map<char, int> mem;
int createnode(char p)
{if(p == '-'){return 0;}if(mem[p]){return mem[p];}else{tree[++cnn].data = p;mem[p] = cnn;return cnn;}
}
int pre(int p)//前序
{if(p == 0){return 0;}cout << tree[p].data;pre(tree[p].left);pre(tree[p].right);
}
int post(int p)//后序
{if(p == 0){return 0;}post(tree[p].left);post(tree[p].right);cout << tree[p].data;
}
int middle(int p)//中序
{if(p == 0){return 0;}middle(tree[p].left);cout << tree[p].data;middle(tree[p].right);
}
//void bfs()层序遍历
//{
// queue<int> q;
// q.push(root);
// while(q.size())
// {
// int p = q.front();
// q
这篇关于复赛准备 - 二叉树的遍历的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!