-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathAVLTree.hpp
More file actions
30 lines (22 loc) · 1.24 KB
/
Copy pathAVLTree.hpp
File metadata and controls
30 lines (22 loc) · 1.24 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#pragma once
#include "AVLNode.hpp"
class AVLTree {
private:
AVLNode* root; //korzeń drzewa
int height(AVLNode* node); //zwraca wysokość węzła
int getBalance(AVLNode* node); //zwraca banals między left i right
AVLNode* rotateRight(AVLNode* y); //rotacja LL
AVLNode* rotateLeft(AVLNode* x); //rotacja RR
AVLNode* rotateLeftRight(AVLNode* y); //rotacla LR
AVLNode* rotateRightLeft(AVLNode* x); //rotacja RL
AVLNode* insert(AVLNode* node, int key, int value); //rekurencyjne wstawianie (na tym pracuje ALV)
AVLNode* remove(AVLNode* node, int key); //rekurencyjne usuwanie
AVLNode* minValueNode(AVLNode* node); //znalezenie najmniejszej wartości z poddrzewa
public:
AVLTree() : root(nullptr) {} //konstruktor pustego drzewa
AVLNode* getRoot() const { //dostęp do korzenia
return root;
}
void insert(int key, int value); //publiczne metody (tego używa użytkownik)
void remove(int key);
};