/ Published in: C++
zadatak4
Expand |
Embed | Plain Text
Copy this code and paste it in your HTML
#include<iostream> using namespace std; struct anode{ int label; bool used; }; struct atree{ anode polje[1000]; }; atree *aInitB(int x,atree *T){ T = new atree; for(int i=0;i<1000;i++){ T->polje[i].used = false; T->polje[i].label = -1; } T->polje[1].label = x; T->polje[1].used = true; return T; } int aLabelB(int n,atree *T){ return T->polje[n].label; } void aChangeLabelB(int x,int n,atree *T){ T->polje[n].label = x; } int aRootB(atree *T){ return T->polje[1].label; } int aLeftChildB(int n,atree *T){ return 2*n; } int aRightChildB(int n,atree *T){ return 2*n+1; } int aParentB(int n,atree *T){ if(T->polje[1].label==n) return -1; if(n%2) return n/2+1; else return n/2; } void aCreateLeftB(int x,int n,atree *T){ if(T->polje[2*n].used) cout << "Lijevo dijete ve����¯�¿�½ postoji!" << endl; else{ T->polje[2*n].label = x; T->polje[2*n].used = true; } } void aCreateRightB(int x,int n,atree *T){ if(T->polje[2*n+1].used) cout << "Desno dijete ve����¯�¿�½ postoji!" << endl; else{ T->polje[2*n+1].label = x; T->polje[2*n+1].used = true; } } void aDeleteB(int n,atree *T){ if(T->polje[aLeftChildB(n,T)].used) aDeleteB(2*n,T); if(T->polje[aRightChildB(n,T)].used) aDeleteB(2*n-1,T); T->polje[n].label = -1; T->polje[n].used = false; }