#include "BinarySearchTree.hpp"
#include "Stack.hpp"
#include <iostream>

int main(){
    zt::Stack<int> stk;
    std::cout<<stk.empty()<<'\n';
    stk.push(1);
    stk.push(2);
    std::cout<<stk.top()<<" "<<stk.size()<<'\n';
    stk.pop();
    std::cout<<stk.size()<<'\n';
    stk.push(10).push(100);
    std::cout<<std::boolalpha<<stk.size()<<" "<<stk.empty()<<'\n';
    // try {
    //     std::cout<<stk.pop().pop().pop().size()<<'\n';
    // } catch (...) {
    
    // }
    zt::BinarySearchTree<int> bst;
    bst.insert(9);
    std::cout<<bst.findMin()<<'\n'<<bst.toString()<<'\n';
    bst.insert(3);
    std::cout<<bst.findMin()<<'\n'<<bst.toString()<<'\n';
    bst.insert(7);
    std::cout<<bst.findMin()<<'\n'<<bst.toString()<<'\n';
    bst.insert(1);
    std::cout<<bst.findMin()<<'\n'<<bst.toString()<<'\n';
    bst.insert(12);
    
    
    std::cout<<bst.findMin()<<'\n'<<bst.toString()<<'\n';
}