Pagini recente » Istoria paginii utilizator/djgaby128 | Istoria paginii utilizator/octavian1910 | Monitorul de evaluare | Monitorul de evaluare | Diferente pentru treapuri intre reviziile 21 si 20
Diferente pentru
treapuri intre reviziile
#21 si
#20
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.