Documente Academic
Documente Profesional
Documente Cultură
//==========================================================
1) Arbore binar total echilibrat
Un arbore binar total echilibrat este un arbore binar care ndeplinete urmtoarea
condiie:
numrul nodurilor unui oricare subarbore stng difer cu cel mult 1 n plus fa de
numrul
nodurilor subarborelui corespunztor drept.
Rezult c frunzele sale se afl pe ultimele dou niveluri.
//==========================================================
2) Subgraf indus
Un graf G =(V, E) este subgraf al lui G daca VC V i EC E. Se spune c
subgraful indus de VC V este G =(V, E ^(VX V)).
//==========================================================
3) Chei sinonime
Funcia f nu este injectiv .Dou chei pentru care f(k1)=f(k2) se spune c intr n
coliziune, iar nregistrrile respective se numesc sinonime.
//==========================================================
4) Arborele de acoperire de cost minim
Fie G =(N, R) un graf neorientat conex. Fiecrei muchii (i, j)R i se asociaz un
cost c[i][j]>0. Problema const n a determina un graf parial conex A = (N, T),
astfel nct suma costurilor muchiilor din T s fie minim. Se observ imediat c
acest graf parial este chiar arborele de acoperire.
//==========================================================
7) Tabele de dispersie
functie stergere
void stergereNod(char* key)
{
NOD* p;
NOD* q = cautareNod(key,&p);
int hash = getHash(key);
if(q == 0)
{
printf("\n Nodul nu exista\n");
return;
}
if(q == HashTable[hash])
{
HashTable[hash] = q->urm;
free(q);
return;
}
if(q->urm == 0)
{
p->urm = 0;
free(q);
return;
}
p->urm = q->urm;
free(q);
}
functie cautare
tip_nod *cautare(char key)
{
int k;
tip_nod *p;
h=f(key);
p=HT(h);
while(p!=0)
{
if(strcmp(key,p->cheie)==0) return p;
p=p->urm;
}
return 0;
}
functie dispersie
#define M
int f(char *key)
{
int i,suma;
suma=0;
for(i=0;i<length(key);i++)
suma=suma+*(key+i);
return suma%M;
}
functie inserare
tip_nod *inserare()
{
tip_nod *p,*q;
int h;
//alocare spatiu p;
h=f(p->cheie);
if (HT[h]==0)
{
HT[h]=p;//prima inreg cu codul de disp h
p->urm=0;
return p;
}
else
{
q=cautare(p->cheie);
if(q==0)
{//nu exista inreg cu cheie resp
p->urm=HT[h];
HT[h]=p;
return p;
}
else {
prelucare(p,q);
return p;
}
}
}
//==========================================================
+ complexitate
+ complexitate
//==========================================================
//==========================================================
//==========================================================
13) Sortare prin interclasare