Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- struct tstablo
- {
- int label;
- bool used;
- };
- struct tree
- {
- tstablo stablo[1000];
- };
- int ParentB(int dijete, tree *stablo)
- {
- if(dijete==1) return 0;
- return dijete/2;
- }
- int LeftChildB(int dijete, tree *stablo)
- {
- return dijete*2;
- }
- int RightChildB(int dijete, tree *stablo)
- {
- return dijete*2+1;
- }
- int LabelB(int oznaka, tree *stablo)
- {
- return stablo->stablo[oznaka].label;
- }
- void ChangeLabelB(int x, int oznaka, tree *stablo)
- {
- stablo->stablo[oznaka].label=x;
- }
- int RootB(tree *stablo)
- {
- return 1;
- }
- void CreateLeftB(int x, int oznaka, tree *stablo)
- {
- if(stablo->stablo[oznaka*2].used==true) cout<<"Error"<<endl;
- else
- {
- stablo->stablo[oznaka*2].label=x;
- stablo->stablo[oznaka*2].used=true;
- }
- }
- void CreateRightB(int x, int oznaka, tree *stablo)
- {
- if(stablo->stablo[oznaka*2+1].used==true) cout<<"Error"<<endl;
- else
- {
- stablo->stablo[oznaka*2+1].label=x;
- stablo->stablo[oznaka*2+1].used=true;
- }
- }
- void DeleteB(int oznaka, tree *stablo)
- {
- if(stablo->stablo[oznaka*2].used==true) DeleteB(oznaka*2,stablo);
- else stablo->stablo[oznaka*2].used=false;
- if(stablo->stablo[oznaka*2+1].used==true) DeleteB(oznaka*2+1,stablo);
- else stablo->stablo[oznaka*2+1].used=false;
- }
- tree *InitB(int label, tree *stablo)
- {
- if(stablo) delete stablo;
- stablo=new tree;
- for(int x=0;x<1000;x++)
- {
- stablo->stablo[x].used=false;
- }
- stablo->stablo[1].label=label;
- stablo->stablo[1].used=true;
- }
Add Comment
Please, Sign In to add comment