Implementação da árvore binária C ++

Inserção da árvore binária:

#include "stdafx.h"
#include <iostream>

using namespace std;

struct TreeNode {
  int value;
  TreeNode* left;
  TreeNode* right;
};

struct TreeType {
  TreeNode* root;

  void insert(TreeNode* tree, int item);

  void insertItem(int value) {
    insert(root, value);
  }
};

void TreeType::insert(TreeNode* tree, int number) {
  if (tree == NULL) {
    tree = new TreeNode;
    tree->left = NULL;
    tree->right = NULL;
    tree->value = number;
    cout << "DONE";
  } else if (number < tree->value) {
    insert(tree->left, number);
  } else {
    insert(tree->right, number);
  }
}

int main() {
  TreeType* MyTree = new TreeType;
  MyTree->insertItem(8);

  return 0;
}

Atualmente estou aprendendo estruturas de dados em C ++ e este é o código que faz a inserção em árvores binárias.

Depois que ele é compilado, tudo parece bem, no entanto, quando eu tento executar este programa, ele caiu.

Alguém pode me dizer onde estou errado?

questionAnswers(3)

yourAnswerToTheQuestion