Website Summary Files Commits Branches @commit @diff @stats
path: root / Seminar08 / insert-in-bst.cpp
diff options
context:
space:
mode:
Commitc5eba3a40b563a9bb91e7e061934d3585c6be5b6 (patch)
Author
 Stoycho Kyosev <stoycho.kk@gmail.com>
2022-11-30 16:44:47 +0200
Committer
 Stoycho Kyosev <stoycho.kk@gmail.com>
2022-11-30 16:44:47 +0200
Files75a5acd335f25a580264ac2bc13c7ad111322e5a /Seminar08/insert-in-bst.cpp
Data-structures-and-algorithms-c5eba3a40b563a9bb91e7e061934d3585c6be5b6.tar
Data-structures-and-algorithms-c5eba3a40b563a9bb91e7e061934d3585c6be5b6.tar.gz
Data-structures-and-algorithms-c5eba3a40b563a9bb91e7e061934d3585c6be5b6.zip
Parent6e2e20ba0a886202628e708b8213609cf6c07a42 (diff)
Add Seminar08
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