blob: 4cb1ccb490e31ebe456697ef8d295bd03b22c35b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
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);
}
|