Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- struct Element {
- int value = 0;
- bool IsRed = false;
- Element* nextl = NULL;
- Element* nextr = NULL;
- Element* previous = NULL;
- };
- void Walk(Element *&Way, int value) {
- 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;
- 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;
- }
- if(tail->value > value) {
- tail->nextl = newElement;
- newElement->previous = tail;
- }
- }
- void TreeOut(Element* root) {
- if(root == NULL)
- return;
- cout << root -> value <<" ";
- TreeOut(root->nextl);
- TreeOut(root->nextr);
- }
- int main()
- {
- int value = 0;
- Element* root = new Element;
- cin >> value;
- cout <<endl;
- root->value = value;
- do {
- cin >> value;
- if(value == 95)
- break;
- SetElement(value, root);
- } while(true);
- TreeOut(root);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement