/ Published in: C++
Expand |
Embed | Plain Text
Copy this code and paste it in your HTML
#include<iostream> using namespace std; struct elem { int label; int used; }; struct bintree { elem elements[1000]; }; typedef struct bintree *bs; typedef int node; node ParentB(node c,bintree *bs) { if (c=1) return(-1); else return((int)c/2); } node LeftChildB(node c,bintree *bs) { if (bs->elements[2*c].used) return(2*c); else { return(-1); } } node RightChildB(node c,bintree *bs) { if (bs->elements[2*c+1].used) return(2*c+1); else { return(-1); } } node RootB(bintree *bs) { return(1); } void DeleteB(node c,bintree *bs) { if(bs->elements[(c*2)+1].used==true){ DeleteB((c*2)+1, bs); } if(bs->elements[(c*2)+2].used==true){ DeleteB((c*2)+2, bs); } bs->elements[c].used=false; } typedef int labeltype; labeltype LabelB(node c,bintree *bs) { return(bs->elements[c].label); } void ChangeLabelB(labeltype x, node c,bintree *bs) { if (bs->elements[c].used) bs->elements[c].label = x; else { cout<<"Trazeni cvor u stablu nema vrijednost."<<endl; } } void CreateLeftB(labeltype x,node c,bintree *bs) { if (bs->elements[2*c].used) { cout<<"Cvor ima lijevo dijete"<<endl; } else { bs->elements[2*c].used = -1; bs->elements[2*c].label = x; } } void CreateRightB(labeltype x,node c,bintree *bs) { if (bs->elements[2*c+1].used) { cout<<"Cvor ima desno dijete"<<endl; } else { bs->elements[2*c+1].used = -1; bs->elements[2*c+1].label = x; } } void InitB(node n,bintree *bs) { int i; for (i=0;i<=999;i++) bs->elements[i].label=-1; bs->elements[1].label=n; bs->elements[1].used=-1; }