Documente Academic
Documente Profesional
Documente Cultură
TEMA 5
Tehnici de Programare
II.ENUNTUL PROBLEMEI
III.ANALIZA PROBLEMEI
M-am gandit sa implementez colectia sub forma unui arbore rosu si negru.
Trebuie astfel creeata o clasa care sa specifice tipul nodurilor din acest arbore
precum si informatia pe care aceste noduri o contin. In fiecare nod din colectie ar
trebui sa fie un cuvant, deci clasa care declara tipul nodului , Node numita ,trebuie
sa contina doua Stringuri ca si cheie si informatie plus campurile de legatura :
campurile tata, fiu stang si fiu drept . Avem , suplimentar un camp pentru culoare.
Avem nevoie de o clasa care sa implementeze structura de arbore sis a
defineasca metodele necesare pt a putea fi parcursa de un iterator. Am ales sa
implementez un iterator intern .
Am defnit o interfata MyIterator care contine cele trei metode specifice unui
iterator : hasNext() , next() , remove().
Colectia va implementa interfata MyIterator.
Aceasta clasa , RBTree , este de fapt arborele.
IV.PROIECTAREA CLASELOR
Clasa RBTree are un camp root care este radacina arborelui si un camp
suplimentar aux, de tipul Node folosit pentru parcurgerea cu iterator . Aux
reprezinta elementul current .
Metode :
public boolean hasNext();
public Object next();
public void remove();
Node getRoot()
Node getAux()
void setRoot(Node yourRoot)
void setAux(Node yourAux)
int getNrElem()
void setNrElem(int nr)
parametru
public int insert_nonrec(Node z) primeste ca parametru o referinta la nodul de
inserat ;
--realizeaza inserarea unui nod in arbore
--introducerea se face in ordine alfabetica
-incarca
arboreal
-descarca
arboreal
in fisier.
Clasa Main realizeaza interfata cu utilizatorul . Un cadru cu butoane
specifice .
Constructorul clasei Main creeaza un obiect de tip Load apeland
constructorul implicit al acesteia si apoi initializeaza acest obiect cu datele
din fisier.
Contine 2 etode care verifica daca un cuvant este valid pentru cautare si
respectiv adaugare:
private boolean validate(String s)
__pentru cautare; cuvantul
poate sa contina steluta sau semnul intrebarii.
cuvant;
V. Implementare si testare
1.Daca incercam * rezulta:
audi =masina
avion =mijloc de transport
maria =ce nume frumos
marin =nume
marius =nume
mire =om
paine =aliment
pix*( =rechizita
placinta =cu branza e super buna ; doamne ce-as mai manca
ronaldinho =fotbalist la Barca
uite =ce anume? a iesit!!!!! ieeeeeeeeeeeeee
Am obtinut de fapt tot contiutul fisierului.
2. Daca incercam m?r* rezulta:
maria =ce nume frumos
marin =nume
marius =nume
mire =om
3. Daca incercam ?* rezulta deasemenea continutul fisierului:
audi =masina
avion =mijloc de transport
maria =ce nume frumos
marin =nume
marius =nume
mire =om
paine =aliment
pix*( =rechizita
placinta =cu branza e super buna ; doamne ce-as mai manca
ronaldinho =fotbalist la Barca
uite =ce anume? a iesit!!!!! ieeeeeeeeeeeeee
V.Diagrama UML
VI.Dezvoltari ulterioare
Se pot implementa contracte , pre si post conditii pentru fiecare
metoda in parte.
VII.Bibliografie
1. Cursuri si laboratoare An I, Semestrul 2, Autor Marius Joldos
2. Curs 3 ,Tehnici de programare, autor Ioan Salomie
3. Proiect Java an I