Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "pch.h"
- #include <iostream>
- #include <math.h>
- using namespace std;
- struct Element {
- int value = 0;
- int level = 0;
- bool IsRed = false;
- Element* nextl = NULL;
- Element* nextr = NULL;
- Element* previous = NULL;
- };
- void Walk(Element *&Way, int value) {
- int Level = 0;
- Element* Current = Way;
- do {
- if ((Current->nextr == NULL && Current->value < value) || (Current->nextl == NULL && Current->value > value))
- break;
- if (Current->value < value)
- Current = Current->nextr;
- else
- if (Current->value > value)
- Current = Current->nextl;
- } while (true);
- Way = Current;
- }
- void SetElement(int value, Element* root) {
- Element* newElement = new Element;
- newElement->value = value;
- Element* tail = root;
- Walk(tail, value);
- if (tail->value < value) {
- tail->nextr = newElement;
- newElement->previous = tail;
- newElement->level = newElement->previous->level + 1;
- }
- if (tail->value > value) {
- tail->nextl = newElement;
- newElement->previous = tail;
- newElement->level = newElement->previous->level + 1;
- }
- }
- void TreeOut(Element* root, int Count) {
- Element **List = new Element*[Count];
- int Pos = 0;
- do {
- Pos = pow(2, root->level) - 1;
- List[Pos] = root;
- if()
- }
- }
- int main()
- {
- int value = 0;
- int Count = 0;
- Element* root = new Element;
- cin >> value;
- cout << endl;
- root->value = value;
- do {
- cin >> value;
- if (value == 95)
- break;
- SetElement(value, root);
- ++Count;
- } while (true);
- TreeOut(root, Count);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement