题目说明的输入第i号节点的左右节点,之后用三种方法遍历,直接用数组下标表示节点编号即可
#include <iostream>
using namespace std;
typedef struct treenode
{
int l;
int r;
};
treenode tree[100001];
void printTreeFront(int i)
{
if (i == 0)
return;
cout << i << " " ;
printTreeFront(tree[i].l);
printTreeFront(tree[i].r);
}
void printTreeMid(int i)
{
if (i == 0)
return;
printTreeMid(tree[i].l);
cout << i << " ";
printTreeMid(tree[i].r);
}
void printTreeBack( int i)
{
if (i == 0)
return;
printTreeBack(tree[i].l);
printTreeBack(tree[i].r);
cout << i << " ";
}
int main()
{
int n = 0;
cin >> n;
for (int i = 1;i <= n;i++)
cin >> tree[i].l >> tree[i].r;
printTreeFront(1);
cout << endl;
printTreeMid(1);
cout << endl;
printTreeBack(1);
cout << endl;
system("pause");
return 0;
}