Website Summary Files Commits Branches @commit @diff @stats
path: root / Seminar08 / insert-in-bst.cpp
diff options
context:
space:
mode:
1 files changed, 36 insertions, 0 deletions
-rw-r--r--Seminar08/insert-in-bst.cpp36
diff --git a/Seminar08/insert-in-bst.cpp b/Seminar08/insert-in-bst.cpp
new file mode 100644
index 0000000..ac4c9f4
--- /dev/null
+++ b/Seminar08/insert-in-bst.cpp
@@ -0,0 +1,36 @@
+#include<iostream>
+#include"tree-utils.h"
+
+// Тук допускаме да има повторения. Ако искаме да няма повторения втория else ще стане else if(t->data > elem)
+template<class T>
+void insertInBST(Tree<T>*& t, const T& elem) {
+ if(t == nullptr) {
+ t = new Tree<T>(elem);
+ return;
+ }
+ else if(t->data < elem) {
+ insertInBST(t->right, elem);
+ }
+ else {
+ insertInBST(t->left, elem);
+ }
+}
+
+int main() {
+ Tree<int>* example = new Tree<int>(4, new Tree<int>(2), new Tree<int>(6));
+
+ insertInBST(example, 1);
+ printTree(example);
+
+ // За любопитните: колко ли ще е височината на дърво от 50 случайни числа?
+ Tree<int>* secondExample = nullptr;
+ srand(time(NULL));
+ for (int i = 0; i < 50; i++)
+ insertInBST<int>(secondExample, rand() % 100);
+
+ exportToTex(secondExample, "file.txt");
+ //-------------------------------------------------
+
+ freeTree(example);
+ freeTree(secondExample);
+} \ No newline at end of file