Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "library.h"
- Tree::Tree()
- {
- Head = nullptr;
- }
- void Tree::Add(double value)
- {
- if (Head == nullptr) {
- Element* CurElement = new Element(value);
- CurElement->value = value;
- Head = CurElement;
- }
- else {
- Element* PrevEl = nullptr;
- Element* Cur = Head;
- while (Cur != nullptr) {
- if (Cur->value <= value) {
- PrevEl = Cur;
- Cur = Cur->RightSon;
- }
- else {
- PrevEl = Cur;
- Cur = Cur->LeftSon;
- }
- }
- if (PrevEl != nullptr) {
- Element* CurElement = new Element(value);
- CurElement->value = value;
- if (PrevEl->value <= value) {
- PrevEl->RightSon = CurElement;
- }
- else PrevEl->LeftSon = CurElement;
- }
- }
- }
- int Tree::GetMaxElementCount()
- {
- if (Head == nullptr) {
- return 0;
- }
- double MaxValue = -10000000;
- int count = 0;
- Element* current = Head;
- while (current != nullptr) {
- if (MaxValue < current->value) {
- count = 0;
- MaxValue = current->value;
- }
- ++count;
- current = current->RightSon;
- }
- return count;
- }
- Element::Element(double x)
- {
- value = x;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement