Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- struct nod
- {
- int val;
- nod *st;
- nod *dr;
- };
- nod *rad;
- void inserare(int valnou)
- {
- nod *nodnou=new nod;
- nodnou->val=valnou;
- nodnou->st=NULL;
- nodnou->dr=NULL;
- if(!rad)
- {
- rad=nodnou;
- return;
- }
- nod *inert=rad;
- nod *tata;
- while(inert){
- tata=inert;
- if(inert->val < nodnou->val)
- inert=inert->dr;
- else
- inert=inert->st;}
- if(tata->val<nodnou->val)
- tata-dr=nodnou;
- else
- tata-st=nodnou;
- }
- void sterge(int valcaut)
- {
- nod* inert = rad;
- nod* tata;
- while (inert->val != valcaut)
- {
- tata = inert;
- if (inert->val < valcaut)
- inert = intert->dr;
- else
- inter = inter->st;
- if (!inert)
- return;
- }
- if (rad->val == valcaut)
- {
- tata = new nod;
- tata->val = valcaut + 1;
- tata->st = rad;
- tata->dr = NULL;
- }
- if (!intert->dr && !intert->st) // I
- {
- if (tata->val < valcaut)
- tata->dr = NULL;
- else
- tata->st = NULL;
- }
- else if (!intert->dr) // II
- {
- inert->val = intert->st->val;
- intert->st = inert->st->st;
- }
- else if (!inert->st) // III
- {
- inert->val = inert->dr->val;
- inert->dr = inert->dr->dr;
- }
- else // IV
- {
- nod* inert2 = inert->dr;
- while (inert2->st)
- {
- tata = inert2;
- inert2 = inert2->st;
- }
- inert->val = inert2->val;
- tata->st = inert2->dr;
- }
- }
- void RSDpreordina(nod *inert)
- {
- cout<<inert->val;
- if(inert->st) RSDpreordina(inert->st);
- if(inert->dr) RSDpreordina(inert->dr);
- }
- void SRDinordine(nod *inert)
- {
- if (inert->st) SRDinordine(inert->st);
- cout << inert->val;
- if (inert-dr) SRDinordine(inert->dr);
- }
- void SDRpostordine(nod *inert)
- {
- if(inert->st)SDRpostordine(inert-st);
- if(inert->dr)SDRpostordine(inert-dr);
- cout<<(inert-val);
- }
- int main() {
- std::cout << "Hello World!\n";
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement