diff options
| author | Mitsuo Tokumori <[email protected]> | 2022-12-04 23:13:28 -0500 |
|---|---|---|
| committer | Mitsuo Tokumori <[email protected]> | 2022-12-04 23:13:28 -0500 |
| commit | 8e01ba134a230e47e8b80351dd8abc8c3b72e683 (patch) | |
| tree | 3f0e174c80cc4a6e4a2aa2b5351f4dad66b49d89 /2022-2/L10/mitsuo/Arbol.cpp | |
| parent | ce58d6504665422a0817cf0ddb38fc533d0de33e (diff) | |
| download | LP1-8e01ba134a230e47e8b80351dd8abc8c3b72e683.tar.gz LP1-8e01ba134a230e47e8b80351dd8abc8c3b72e683.tar.bz2 LP1-8e01ba134a230e47e8b80351dd8abc8c3b72e683.zip | |
Add my solution for L10
Diffstat (limited to '2022-2/L10/mitsuo/Arbol.cpp')
| -rw-r--r-- | 2022-2/L10/mitsuo/Arbol.cpp | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/2022-2/L10/mitsuo/Arbol.cpp b/2022-2/L10/mitsuo/Arbol.cpp new file mode 100644 index 0000000..4cb1ccb --- /dev/null +++ b/2022-2/L10/mitsuo/Arbol.cpp @@ -0,0 +1,68 @@ +/* + * File: Arbol.cpp + * Author: mitsuo + * + * Created on 02 December 2022, 12:40 + */ + +#include <iostream> +#include <iomanip> +#include "Arbol.h" + +using namespace std; + +Arbol::Arbol() { + this->raiz = nullptr; +} + +Arbol::Arbol(const Arbol& orig) { +} + +Arbol::~Arbol() { +} + + +void Arbol::insert(Medicamento * m) { + Nodo * nodo = new Nodo; + Nodo ** walk = &this->raiz; + + nodo->med = m; + + while (*walk) { + if (m->getCodigo() < (*walk)->med->getCodigo()) { + walk = &(*walk)->izq; + } else { + walk = &(*walk)->der; + } + } + *walk = nodo; +} + +void Arbol::print(std::ostream &output) { + this->print_rec(this->raiz, output); +} + +void Arbol::print_rec(Nodo * nodo, std::ostream &output) { + /* in order */ + if (!nodo) { + return; + } + this->print_rec(nodo->izq, output); + nodo->med->imprime(output); + this->print_rec(nodo->der, output); +} + + +void Arbol::actualiza(std::istream &input) { + this->actualiza_rec(this->raiz, input); +} + +void Arbol::actualiza_rec(Nodo * nodo, std::istream &input) { + /* in order */ + if (!nodo) { + return; + } + this->actualiza_rec(nodo->izq, input); + nodo->med->actualiza(input); + this->actualiza_rec(nodo->der, input); +} |
