Funzioni Fondamenti Informatica (S. Cavalieri): InsertAbr

Page 1

INSERIMENTO ALBERO void InsertABR(abr *p, tipobaseABR x){ if(!FullABR(*p)){ if(EmptyABR(*p)){ *p = (struct nodoABR *)malloc(sizeof(struct nodoABR)); (*p)->info = x; (*p)->leftchild = (*p)->rightchild = ALBEROVUOTO; }else if(Confronta((*p)->info, x) > 0) InsertABR(&(*p)->leftchild, x); else if(Confronta((*p)->info, x) < 0)) InsertABR(&(*p)->rightchild, x); } } INSERIMENTO ELEMENTO ALBERO GENERICO (RICORSIONE LEFTCHILD)

INSERIMENTO ELEMENTO ALBERO VUOTO FFOO

X = 17

30

p NULL FF00

*p AB00 AB00

47

20 FFOO

*p NULL NULL FF00

17 NULL NULL

42

70

X NULL NULL


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.