Conocimiento:
#include <iostream> usando el espacio de nombres std; int flag; typedef struct node { int data; struct node * lchild, * rchild ; } Tree; void CreateHead (Tree * & root) { root = new Tree; cin >> root-> datos; la raíz -> = directorio raíz lchild> rchild = NULL; } // entrada de valor de la raíz vacío CreateTree (el árbol de raíz y *, int k) // elementos de datos K // crear un árbol de tipo binario { SI(La raíz == NULL) // Cuando el nodo raíz está vacía { la raíz = new new árbol; directorio root-> Datos = K; la raíz -> = directorio lchild Raíz> rchild = NULL; retorno ; } else SI (directorio Raíz> Datos > k) // El elemento de datos de entrada es más pequeño que el nodo raíz { CreateTree ( root- > lchild, k); // Almacene en el subárbol izquierdo } sino if (root-> data <k) // El elemento de datos de entrada es más que root Nodo grande { CreateTree (root- > rchild, k); // Almacenar en el subárbol derecho } } void Searchkey (Tree * root, int key, int count) // key significa el elemento que se va a encontrar, count significa count { if (root == NULL) // cuando el nodo está vacío, return { return ; } if (key = = raíz-> datos) // Cuando el valor del nodo raíz es igual al valor que se encuentra { cout << count; flag = 1 ; return ; // Si se encuentra, el conteo de salida multiplicado // La bandera se le asigna un valor de 1 } sino if (key < root-> data) // Cuando la clave es menor que el nodo raíz, vaya al subárbol izquierdo { Searchkey (root- > lchild , key, count + 1 ); } else if (key> root-> data) // Cuando la clave es mayor que el nodo raíz, vaya al subárbol derecho { Searchkey (root- > rchild , key, count + 1 ); } } int main () { int n; cin >> n; // Número de elementos int i; int count = 1 ; Tree * root; CreateHead (root); int k; for (i = 2 ; i < = n; i ++)// Debido a que se ha ingresado un elemento en CreateHead { cin >> k; CreateTree (root, k); } // Crea una bandera de árbol de ordenación binaria = 0 ; // Inicializa a 0 clave int ; cin >> clave; Searchkey ( root, key, count); if (flag == 0 ) cout << " -1 " ; return 0 ; }