给出一个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.pop();
// cout << tree[p].data;
// if(tree[p].left)
// {
// q.push(tr

这篇博客主要介绍了如何对具有n个节点的二叉树进行前序、中序和后序遍历。通过实例解析了C++实现的遍历方法。
最低0.47元/天 解锁文章
883

被折叠的 条评论
为什么被折叠?



