SD Lab 10
SD Lab 10
Main.cpp
#include "Header.h"
int Eq_required;
int main() {
Nod* rad = 0;
int val;
FreeMemory(rad);
return 0;
}
Functii.cpp
#include "Header.h"
extern int Eq_required;
return p;
}
void RSS(Nod*& a) {
Nod* b;
b = a->drt;
a->drt = b->stg;
b->stg = a;
a->bf = b->bf = 0;
a = b;
}
void RSD(Nod*& a) {
Nod* b;
b = a->stg;
a->stg = b->drt;
b->drt = a;
a->bf = b->bf = 0;
a = b;
}
void RDS(Nod*& a) {
Nod* b, * c;
b = a->drt;
c = b->stg;
switch (c->bf) {
case 0:
a->bf = 0;
b->bf = 0;
break;
case -1:
a->bf = 1;
b->bf = 0;
break;
case 1:
a->bf = 0;
b->bf = -1;
}
a->drt = c->stg;
b->stg = c->drt;
c->bf = 0;
c->stg = a;
c->drt = b;
a = c;
}
void RDD(Nod*& a) {
Nod* b, * c;
b = a->stg;
c = b->drt;
switch (c->bf) {
case 0:
a->bf = 0;
b->bf = 0;
break;
case -1:
a->bf = 0;
b->bf = 1;
break;
case 1:
a->bf = -1;
b->bf = 0;
}
a->stg = c->drt;
b->drt = c->stg;
c->bf = 0;
c->drt = a;
c->stg = b;
a = c;
}
break;
case 0:
a->bf = 1;
break;
case -1:
a->bf = 0;
Eq_required = false;
}
}
}
else
Eq_required = false;
}
}
else {
p = RemoveGreatest(rad->stg);
p->stg = rad->stg;
p->drt = rad->drt;
delete rad;
rad = p;
}
}
Header.h
#pragma once
#include <iostream>
using namespace std;
struct Nod {
int data;
int bf;
Nod* stg, * drt;
};