/ Published in: C++
Expand |
Embed | Plain Text
Copy this code and paste it in your HTML
#include <iostream> using namespace std; struct element { int label; bool used; }; struct bt { element elements[10000]; }; int ParentB(int n, bt* T) { if (n == 1) return 0; if (n%2) n--; return n/2; } int LeftChildB(int n, bt* T) { if (T->elements[n].used == 0) return 0; if (T->elements[2*n].used == 1) return 2*n; return 0; } int RightChildB(int n, bt* T) { if (T->elements[n].used == 0) return 0; if (T->elements[2*n+1].used == 1) return 2*n+1; return 0; } int LabelB(int n, bt* T) { return T->elements[n].label; } void ChangeLabelB(int x, int n, bt* T) { if(T->elements[n].used == 1) T->elements[n].label = x; } int RootB(bt* T) { if(T->elements[1].used == 0) return 0; return 1; } void CreateLeftB(int x, int n, bt* T) { if(T->elements[n].used == 0 || T->elements[2*n].used == 1) { cout << "Poruka greske" << endl; return; } T->elements[2*n].used = 1; T->elements[2*n].label = x; } void CreateRightB(int x, int n, bt* T) { if(T->elements[n].used == 0 || T->elements[2*n+1].used == 1) { cout << "Poruka greske" << endl; return; } T->elements[2*n+1].used = 1; T->elements[2*n+1].label = x; } void DeleteB(int n, bt* T) { T->elements[n].used = 0; if (LeftChildB(n,T)) DeleteB(LeftChildB(n,T),T); if (RightChildB(n,T)) DeleteB(RightChildB(n,T),T); } bt* InitB(int x, bt* T) { T = new bt; T->elements[1].label = x; T->elements[1].used = 1; for(int i = 2; i < 10000; i++) T->elements[i].used = 0; return T; }