/ Published in: C++
asdf
Expand |
Embed | Plain Text
Copy this code and paste it in your HTML
#include <iostream> using namespace std; struct bt{ char label; bool used; }; struct btree{ bt element[1000]; }; typedef struct btree element; bool ExistLeftChild(int n, btree *T){ if(T->element[2*n].used) return true; return false; } bool ExistRightChild(int n, btree *T){ if(T->element[2*n+1].used) return true; return false; } int ParentB(int n, btree *T){ if(T->element[1].label == n) return -1; if(n%2) return n/2+1; else return n/2; } int LeftChildB(int n, btree *T){ if(T->element[n*2].used) return n*2; else return -1; } int RightChildB(int n, btree *T){ if(T->element[n*2+1].used) return n*2+1; else return -1; } int LabelB(int n, btree *T){ return T->element[n].label; } void ChangeLabelB(int x, int n, btree *T){ T->element[n].label = x; } int RootB(btree *T){ return T->element[1].label; } void DeleteB(int n, btree *T){ if(LeftChildB(n,T) != -1) DeleteB(LeftChildB(n,T),T); if(RightChildB(n,T) != -1) DeleteB(RightChildB(n,T),T); T->element[n].used = false; } btree *InitB(int x, btree *T){ T = new btree; for (int i=2; i<1000; i++) T->element[i].used = false; T->element[1].label = x; T->element[1].used = true; return T; } void CreateLeftB(int x, int n, btree *T){ if (T->element[n*2].used) cout << "Ima vec lijevo dijete!" << endl; else{ T->element[n*2].label = x; T->element[n*2].used = true; } } void CreateRightB(int x, int n, btree *T){ if (T->element[n*2+1].used) cout << "Ima vec desno dijete!" << endl; else{ T->element[n*2+1].label = x; T->element[n*2+1].used = true; } }
URL: asdf