-
Notifications
You must be signed in to change notification settings - Fork 0
/
interfata.txt
73 lines (53 loc) · 1.44 KB
/
interfata.txt
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
69
70
71
72
73
//AB.h
#include <string>
typedef int TElem;
class AB {
private:
/* aici e reprezentarea */
public:
//constructorul implicit
AB();
//creeaza un arbore binar care se reduce la o frunza
AB(TElem elem);
//constructor arbore binar
AB(const AB& st, TElem elem, const AB& dr);
//adauga unui arbore binar subarborele stang
//arunca exceptie daca arborele este vid
void adaugaSubSt(const AB& st);
//adauga unui arbore binar subarborele drept
//arunca exceptie daca arborele este vid
void adaugaSubDr(const AB& dr);
//verifica daca arborele este vid
bool vid() const;
//accesare element din radacina
//arunca exceptie daca arborele este vid
TElem element() const;
//accesare subarbore stang
//arunca exceptie daca arborele este vid
AB stang() const;
//accesare subarbore drept
//arunca exceptie daca arborele este vid
AB drept() const;
//iteratori pe arborele binar (ordine="preordine", "postordine", "inordine", "latime")
IteratorAB* iterator(string ordine);
// destructorul arborelui binar
~AB();
};
//IteratorAB.h
//clasa abstracta pura
class IteratorAB {
public:
//operatii pe iterator
virtual void prim() = 0;
virtual void urmator() = 0;
virtual TElem element() = 0;
virtual bool valid() = 0;
};
//aceasta clasa implementeaza clasa abstracta IteratorAB
class IteratorPreordine: public IteratorAB{
private:
//aici e reprezentarea
public:
// aici sunt operatiile
};
...