Biologie | Chimie | Didactica | Fizica | Geografie | Informatica | |
Istorie | Literatura | Matematica | Psihologie |
parcurgere in inordine (subarbore stang - radacina - subarbore drept)
parcurgere in preordine (radacina - subarbore stang - subarbore drept)
parcurgere in postordine (subarbore stang - subarbore drept - radacina)
Sa se implementeze urmatoarele operatii pentru un arbore binar de cautare:
- inserare nod;
- stergere nod;
- parcurgere in inordine;
- parcurgere in postordine;
- parcurgere in preordine.
import java.io.*;
class Nod
class Arbore
//metoda de cautare
public Nod cauta(int n)
return curent;
}
//metoda inserare nod nou
public void insereaza(int n)
}
else //deplasare la dreapta?
}
}
}
}
//metoda stergere nod
public boolean sterge(int n)
else
if(curent==null) //nu s-a gasit cheia
return false;
}
//am gasit nodul care trebuie sters
//daca nodul nu are copii se sterge direct
if((curent.st==null)&&(curent.dr==null))
//nodul de sters are un fiu
//daca nu exista fiu in dreapta, se inlocuieste cu subarborele stang
else
if(curent.dr==null)
if(curent==radacina)
radacina=curent.st;
else
if(t)
parinte.st=curent.st;
else
parinte.dr=curent.st;
//daca nu exista fiu in stanga, inlocuieste cu subarborele drept
else
if(curent.st==null)
if(curent==radacina)
radacina=curent.dr;
else
if(t)
parinte.st=curent.dr;
else
parinte.dr=curent.dr;
//dc nodul are 2 fii, atunci se inlocuieste cu succesorul inordine
else
//succesor nu poate avea subarbore stang
return true;
}
//intoarce nodul cu valoarea imediat mai mare decat valoarea de sters
//parcurge fiul drept apoi descendentii din stanga
private Nod cautaSuccesor(Nod nd)
//daca succesorul nu e fiul drept modifica referintele
if(succesor!=nd.dr)
return succesor;
}
//metoda de parcurgere
public void parcurge(int opt)
System.out.println();
}
//parcurgere in preordine
public void preordine(Nod m)
}
//parcurgere in inordine
public void inordine(Nod m)
}
//parcurgere in postordine
public void postordine(Nod m)
}
}
class arbori
// introducere integer
public static int getInt() throws IOException
public static void main(String[] args) throws IOException
Sa se implementeze urmatoarele operatii pentru un arbore 2-3-4:
- inserare nod;
- cautare valoare;
- afisare arbore.
import java.io.*;
class Cheie
//afisare element
public void afisareValoare()
class Nod
//deconecteaza fiul de la acest nod
public Nod deconectareFiu(int numarFiu)
public Nod returneazaFiu(int numarFiu)
public Nod returneazaParinte()
public boolean esteFrunza()
public int returneazaNumarChei()
//intoarce valoarea de pe pozitia x
public Cheie returneazaCheie(int x)
public boolean estePlin()
//intoarce indicele elementului care are o anumita valoare
public int cautaValoare(int info)
return -1; //daca nu gaseste elementul intoarce -1
}
//adauga valoare la un nod
public int adaugaCheie(Cheie cheieNoua)
}
}
cheiVect[0]=cheieNoua;
return 0;
}
//sterge elementul maxim din nod
public Cheie stergeCheie()
//afisare nod
public void afiseazaNod()
class Arbore234
}
//intoarce fiul corespunzator al nodului in cautaea valorii
public Nod fiuUrmator(Nod nodCurent, int val)
//daca valoarea este mai mare returneaza ultimul fiu
return nodCurent.returneazaFiu(i);
}
//metoda inserare cheie
public void insereaza(int val)
else
if (nodCurent.esteFrunza())
break;
else
//nodul nu este nici complet, nici frunza
//avanseaza la nivelul urmator
nodCurent=fiuUrmator(nodCurent,val);
}
nodCurent.adaugaCheie(tempCheie);
}
//metoda de divizare
public void divizeaza(Nod nodCurent)
else
parinte=nodCurent.returneazaParinte();
nr=parinte.adaugaCheie(cheie2);
int n=parinte.returneazaNumarChei();
for (int i=n-1; i>nr; i--)
parinte.conectareFiu(nr+1,nodNou);
//conecteaza nodNou cu parintele
nodNou.adaugaCheie(cheie3);
nodNou.conectareFiu(0,fiu2);
nodNou.conectareFiu(1,fiu3);
}
public void afisareArbore()
private void afisareRecursivaArbore(Nod nodCurent,int nivel,int nrFiu)
}
class arbori234Aplicatie
// introducere integer
public static int getInt() throws IOException
public static void main(String[] args) throws IOException
}
}
Politica de confidentialitate |
Copyright © 2024 - Toate drepturile rezervate