lasd/librerie/exercise4/zmytest/test.hpp

115 lines
2.4 KiB
C++
Raw Normal View History

2021-05-11 06:51:06 +02:00
#ifndef MYTEST_HPP
#define MYTEST_HPP
2021-05-17 11:51:00 +02:00
#include"../binarytree/lnk/binarytreelnk.hpp"
#include"../bst/bst.hpp"
2021-05-11 06:51:06 +02:00
/* ************************************************************************** */
2021-05-17 11:51:00 +02:00
enum class DataType{integer,ffloat,sstring};
2021-05-11 06:51:06 +02:00
2021-05-17 11:51:00 +02:00
/* ---- integer functions ---- */
2021-05-17 15:21:13 +02:00
template <typename Data>
void IntegerFunctions(lasd::BST<Data>&);
2021-05-17 11:51:00 +02:00
2021-05-17 15:21:13 +02:00
template <typename Data>
void ProductsElementsLessThan(lasd::BST<Data>&);
2021-05-17 11:51:00 +02:00
void AccumulateProduct(const int&, const void*, void*);
/* ----- float functions ----- */
2021-05-17 15:21:13 +02:00
template <typename Data>
void FloatFunctions(lasd::BST<Data>&);
2021-05-17 11:51:00 +02:00
2021-05-17 15:21:13 +02:00
template <typename Data>
void SumElementsGreaterThan(lasd::BST<Data>&);
2021-05-17 11:51:00 +02:00
void AccumulateSum(const float&, const void*, void*);
/* ----- string functions ----- */
2021-05-17 15:21:13 +02:00
template <typename Data>
void StringFunctions(lasd::BST<Data>&);
2021-05-17 11:51:00 +02:00
2021-05-17 15:21:13 +02:00
template <typename Data>
void ConcatLessThan(lasd::BST<Data>&);
2021-05-17 11:51:00 +02:00
void ConcatAString(const std::string&, const void*, void*);
/* ---- shared functions ---- */
void menu();
2021-05-17 15:21:13 +02:00
template <typename Data>
void PrintTree(lasd::BST<Data>&);
2021-05-17 11:51:00 +02:00
template <typename Data>
void PrintSingleElement(Data& data, void* _);
2021-05-17 15:21:13 +02:00
template <typename Data>
void CheckExistence(lasd::BST<Data>& tree);
2021-05-17 11:51:00 +02:00
2021-05-17 15:21:13 +02:00
template <typename Data>
void InsertElement(lasd::BST<Data>&);
2021-05-17 11:51:00 +02:00
2021-05-17 15:21:13 +02:00
template <typename Data>
void RemoveElement(lasd::BST<Data>&);
2021-05-17 11:51:00 +02:00
2021-05-17 15:21:13 +02:00
template <typename Data>
void PrintMinimum(lasd::BST<Data>&);
2021-05-17 11:51:00 +02:00
2021-05-17 15:21:13 +02:00
template <typename Data>
void PrintMinimumNDelete(lasd::BST<Data>&);
2021-05-17 11:51:00 +02:00
2021-05-17 15:21:13 +02:00
template <typename Data>
void RemoveMin(lasd::BST<Data>&);
2021-05-17 11:51:00 +02:00
2021-05-17 15:21:13 +02:00
template <typename Data>
void PrintMaximum(lasd::BST<Data>&);
2021-05-17 11:51:00 +02:00
2021-05-17 15:21:13 +02:00
template <typename Data>
void PrintMaximumNDelete(lasd::BST<Data>&);
2021-05-17 11:51:00 +02:00
2021-05-17 15:21:13 +02:00
template <typename Data>
void RemoveMax(lasd::BST<Data>&);
2021-05-17 11:51:00 +02:00
2021-05-17 15:21:13 +02:00
template <typename Data>
void PrintPredecessor(lasd::BST<Data>&);
2021-05-17 11:51:00 +02:00
2021-05-17 15:21:13 +02:00
template <typename Data>
void PredecessorNRemove(lasd::BST<Data>&);
2021-05-17 11:51:00 +02:00
2021-05-17 15:21:13 +02:00
template <typename Data>
void RemovePredecessor(lasd::BST<Data>&);
2021-05-17 11:51:00 +02:00
2021-05-17 15:21:13 +02:00
template <typename Data>
void PrintSuccessor(lasd::BST<Data>&);
2021-05-17 11:51:00 +02:00
2021-05-17 15:21:13 +02:00
template <typename Data>
void SuccessorNRemove(lasd::BST<Data>&);
2021-05-17 11:51:00 +02:00
2021-05-17 15:21:13 +02:00
template <typename Data>
void RemoveSuccessor(lasd::BST<Data>&);
2021-05-17 11:51:00 +02:00
template <typename T>
2021-05-19 10:58:54 +02:00
bool NodeOperations(T&);
2021-05-17 11:51:00 +02:00
/* ----- generator functions ----- */
2021-05-17 15:21:13 +02:00
DataType ChooseDataType();
2021-05-17 11:51:00 +02:00
void UseChosenType(DataType);
2021-05-17 15:21:13 +02:00
lasd::BST<int> GenerateIntegerBST(lasd::BST<int>&);
lasd::BST<float> GenerateFloatBST(lasd::BST<float>&);
lasd::BST<std::string> GenerateStringsBST(lasd::BST<std::string>&);
2021-05-17 11:51:00 +02:00
std::string generateRandomString(ulong);
2021-05-17 15:21:13 +02:00
2021-05-17 11:51:00 +02:00
ulong getDimension();
2021-05-11 06:51:06 +02:00
#endif