#include <iostream>
#include <algorithm>
#include <climits>
#include <vector>
using namespace std;
const int INF = INT_MAX;
struct node {
int data;
node *lchild, *rchild;
} *tree;
vector<int> in;
int q;
void insert(node *&p, int x) {
if (!p) {
p = new node;
p->data = x;
p->lchild = p->rchild = nullptr;
return ;
}
if (x >= p->data)
insert(p->rchild, x);
if (x < p->data)
insert(p->lchild, x);
}
void inorder(node *p) {
if (!p)
return ;
inorder(p->lchild);
in.push_back(p->data);
inorder(p->rchild);
}
int main() {
cin >> q;
while (q --) {
int op, x;
cin >> op >> x;
in.clear();
inorder(tree);
switch (op) {
case 1:
cout << lower_bound(in.begin(), in.end(), x) - in.begin() + 1 << endl;
break;
case 2:
cout << in[x - 1] << endl;
break;
case 3: {
auto it &
洛谷 - P5076 【深基16.例7】普通二叉树(简化版)
最新推荐文章于 2024-03-05 21:44:30 发布
本文详细介绍了洛谷P5076题目,主要讨论如何使用深度优先搜索(DFS)解决简化版的普通二叉树问题。通过对二叉树节点的递归遍历,实现对树结构的有效操作,并提供C++代码实现。
摘要由CSDN通过智能技术生成