Final Flashcards
∑q^i
s=(q^(n+1)-1) / (q-1)
tip: s=… qs=… s-qs=…
Insertion dans une pile ordonnée
Insérer(P,x) Si pilevide(P) ou x < P[sommet[P]] alors empiler(P,x) sinon y:=depiler(P); insérer(P,x); empiler(P,y)
File, vide ? pleine ?
Vide : Tete[F] = Queue[F]
Pleine : Tete[F] = (Queue[F] + 1) % longueur[F]
Parcours infixe (dans l’ordre)
Parcours_infixe(x) Si x <> nil alors Parcours_infixe(gauche[x]) Imprimer clé[x] Parcours_infixe(droit[x])
Nombre de noeuds internes (arbre binaire complet de hauteur h)
2^h -1
∑i, ∑k.i
∑k.i = k∑ = k.n(n+1)/2
tip: # of terms, 2s=…
ABR : Rechercher(x, k)
Si x=nil ou k=cle[x] retourner x
sinon si k < cle[x] alors retourner Rechercher(gauche[x], k)
Sinon retourner Rechercher(droit[x], k)
ABR : Minimum(x)
Tant que gauche[x] <> nil x=gauche[x]
Retourner x
ABR : Successeur(x)
Si droit[x]<>nil retourner Minimum(droit[x]) y = pere[x] Tant que y <> nil et x=droit(y) x=y; y=pere[y] Retourner y
ABR : Insérer(T,z)
y=nil; x=racine[T] Tant que x <> nil y = x si clé[z] < clé[x] x=gauche[x] sinon x=droit[x] pere[z] = y Si y=nil racine[T] = z sinon si clé[z] < cle[y] alors gauche[y] = z sinon droit[y] = z
ABR : Suppression
Si aucun fils, supprimer.
Si 1 fils, raccorder.
Si 2 fils, remplacer par le minimum de droit[x] puis supprimer ce minimum
H-équilibré
Si pour tout x, |equilibre[x]| <= 1
equilibre(x) = hauteur(droit(x)) - hauteur(gauche(x))
(hauteur(x) = 1, hauteur(nil) = -1
ABR : Rotd(A, x)
Si x<>nil et gauche[x]<>nil alors y = gauche[x] c = droit[y] pere[y] = pere[x] Si pere[x] <> nil alors si x=gauche[pere[x]] alors gauche[pere[x]] = y sinon droit[pere[x]] = y Sinon racine[A] = y droit[y] = x pere[x] = y gauche[x] = c Si c<>nil alors pere[c] = x
ABR : enraciner(racine, e)
Si cle[racine] = e alors retourner racine Si clé[racine] > e alors enraciner(gauche[racine], e) retourner Rotd(racine) Si clé[racine] < e alors enraciner(droit[racine], e) retourner Rotg(racine) Complexité O(h) = O(n)
max(A,B) + C
C - max(A,B)
max(A,B)
= max(A+C, B+C)
= - max(A-C,B-C)
= - min(-A,-B)