From c5eba3a40b563a9bb91e7e061934d3585c6be5b6 Mon Sep 17 00:00:00 2001 From: Stoycho Kyosev Date: Wed, 30 Nov 2022 16:44:47 +0200 Subject: Add Seminar08 --- Seminar08/insert-in-bst.cpp | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 Seminar08/insert-in-bst.cpp (limited to 'Seminar08/insert-in-bst.cpp') 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 +#include"tree-utils.h" + +// Тук допускаме да има повторения. Ако искаме да няма повторения втория else ще стане else if(t->data > elem) +template +void insertInBST(Tree*& t, const T& elem) { + if(t == nullptr) { + t = new Tree(elem); + return; + } + else if(t->data < elem) { + insertInBST(t->right, elem); + } + else { + insertInBST(t->left, elem); + } +} + +int main() { + Tree* example = new Tree(4, new Tree(2), new Tree(6)); + + insertInBST(example, 1); + printTree(example); + + // За любопитните: колко ли ще е височината на дърво от 50 случайни числа? + Tree* secondExample = nullptr; + srand(time(NULL)); + for (int i = 0; i < 50; i++) + insertInBST(secondExample, rand() % 100); + + exportToTex(secondExample, "file.txt"); + //------------------------------------------------- + + freeTree(example); + freeTree(secondExample); +} \ No newline at end of file -- cgit v1.3.1-23-gd82d