Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #pragma once
- #include "Nodo.hpp"
- #include <iostream>
- template <class X>
- class CArbol
- {
- public:
- CArbol() {
- raiz = nullptr;
- }
- ~CArbol() {}
- void insertar(X e) {
- _insertar(raiz, e);
- }
- void enOrden() {
- _enOrden(raiz);
- }
- void preOrden() {
- _preOrden(raiz);
- }
- void postOrden() {
- _postOrden(raiz);
- }
- CNodo<X>*& recuperar(X buscar) {
- CNodo<X>* val = _recuperar(raiz, buscar);
- return val;
- }
- private:
- CNodo<X>* raiz;
- void _enOrden(CNodo<X>*& nodo) {
- if (nodo == nullptr) return;
- else {
- _enOrden(nodo->getHI());
- cout << nodo->getElemento() << " ";
- _enOrden(nodo->getHD());
- }
- }
- void _preOrden(CNodo<X>*& nodo) {
- if (nodo == nullptr) return;
- else {
- cout << nodo->getElemento() << " ";
- _preOrden(nodo->getHI());
- _preOrden(nodo->getHD());
- }
- }
- void _postOrden(CNodo<X>*& nodo) {
- if (nodo == nullptr) return;
- else {
- _postOrden(nodo->getHI());
- _postOrden(nodo->getHD());
- cout << nodo->getElemento() << " ";
- }
- }
- void _buscar(CNodo<X>&nodo, X buscar) {
- if (nodo == nullptr) {
- }
- }
- void _insertar(CNodo<X>*& nodo, X e) {
- if (nodo == nullptr)
- nodo = new CNodo<X>(e);
- else if (e <= nodo->getElemento())
- _insertar(nodo->getHI(), e);
- else
- _insertar(nodo->getHD(), e);
- }
- CNodo<X>* _recuperar(CNodo<X>* nodo, X buscar) {
- if (nodo == nullptr) {
- return nullptr;
- }
- else if (buscar==nodo->getElemento()) {
- return nodo;
- }
- else if (buscar > nodo->getElemento()) {
- _recuperar(nodo->getHD(), buscar);
- }
- else if (buscar < nodo->getElemento()) {
- _recuperar(nodo->getHI(), buscar);
- }
- };
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement