| 114 | } |
| 115 | |
| 116 | Node *BST::rInsert(Node *p, int key) |
| 117 | { |
| 118 | Node *t; |
| 119 | if (p == nullptr) |
| 120 | { |
| 121 | t = new Node; |
| 122 | t->data = key; |
| 123 | t->lchild = nullptr; |
| 124 | t->rchild = nullptr; |
| 125 | return t; |
| 126 | } |
| 127 | |
| 128 | if (key < p->data) |
| 129 | { |
| 130 | p->lchild = rInsert(p->lchild, key); |
| 131 | } |
| 132 | else if (key > p->data) |
| 133 | { |
| 134 | p->rchild = rInsert(p->rchild, key); |
| 135 | } |
| 136 | return p; // key == p->data? |
| 137 | } |
| 138 | |
| 139 | Node *BST::rSearch(Node *p, int key) |
| 140 | { |