Shaped like
struct node { int key; int height; int size; //tree node 个数 node *left, *right; node(int x) : key(x), height(1), size(1), left(NULL), right(NULL) {} node() : key(NULL), height(NULL), size(NULL), left(NULL), right(NULL){} };
struct node { int key; int height; int size; node *left, *right; node(int k) { key = k; height = 1; size = 1; left = right = 0; } };
node * root=NULL;
root = new node (0); being given segment fault. The reason is that this time root pointer just no space.
Changed
node * root=NULL;
node * p= new node (0);
root=p;
To