Pagini recente » Profil madboy | Diferente pentru utilizator/veleandu intre reviziile 7 si 6 | Diferente pentru utilizator/doruf intre reviziile 16 si 17 | Diferente pentru utilizator/mihai0110 intre reviziile 21 si 22 | Diferente pentru treapuri intre reviziile 20 si 21
Diferente pentru
treapuri intre reviziile
#20 si
#21
Nu exista diferente intre titluri.
Diferente intre continut:
T *left, *right;
} *R, *nil;
void init(T* &R)
{
void init(T* &R) {
srand(unsigned(time(0)));
R = nil = new T();
nil->left = nil->right = NULL;
}
void rotleft(T* &n)
{
void rotleft(T* &n) {
T *t = n->left;
n->left = t->right, t->right = n;
n = t;
}
void rotright(T* &n)
{
void rotright(T* &n) {
T *t = n->right;
n->right = t->left, t->left = n;
n = t;
}
void balance(T* &n)
{
void balance(T* &n) {
if (n->left->priority > n->priority)
rotleft(n);
else if (n->right->priority > n->priority)
rotright(n);
}
void insert(T* &n, int key)
{
if (n == nil)
{
void insert(T* &n, int key) {
if (n == nil) {
n = new T();
n->key = key, n->priority = rand() + 1,
n->left = n->right = nil;
balance(n);
}
void erase(T* &n, int key)
{
void erase(T* &n, int key) {
if (n == nil) return ;
if (key < n->key)
Nu exista diferente intre securitate.
Topicul de forum nu a fost schimbat.