public void insert(int value) {
        Binarynode node = new Binarynode(value);
        size++;
        if (size == 1) {
            root = node;
            return;
        }
        Binarynode helpnode = root;
        String binary = Integer.toBinaryString(size);
        for (int i = 1; i < binary.length() - 1; i++) {
            if (binary.charAt(i) == '0') {
                helpnode = helpnode.left;
            } else {
                helpnode = helpnode.right;
            }
        }
        if (binary.charAt(binary.length() - 1) == '0') {
            helpnode.left = node;
            node.parent = helpnode;
        } else {
            helpnode.right = node;
            node.parent = helpnode;
        }
        heap_up(node);
    }