typedef struct BTNode {
int data;
struct BTNode lchild;
struct BTNode rchild;
}BTNode;
int n = 0;
void trave(BTNode *p, int k) { //这是先序遍历
if (p != nullptr) {
++n;
if (k == n) {
cout << p->data << endl;
return;
}
trave(p->lchild, k);
trave(p->rchild, k);
}
}
void trave(BTNode *p, int k) { //这是中序遍历
if (p != nullptr) {
trave(p->lchild, k);
++n;
if (k == n) {
cout << p->data << endl;
return;
}
trave(p->rchild, k);
}
}
void trave(BTNode *p, int k) { //这是后序遍历
if (p != nullptr) {
trave(p->lchild, k);
trave(p->rchild, k);
++n;
if (k == n) {
cout << p->data << endl;
return;
}
}
}