Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- bool insert(skiplist* head, int new_key, int LMAX)
- {
- skiplist* x = head;
- int height = random_level(LMAX);
- skiplist* update[LMAX];
- for (int i = height - 1; i >= 0; i--)
- {
- while (x->next[i]->key < new_key)
- {
- x = x->next[i];
- }
- update[i] = x;
- }
- x = x->next[0];
- if (x->key == new_key)
- {
- x->litera = 'D';
- return false;
- }
- skiplist* new_node = new skiplist;
- new_node->next = new skiplist*[height];
- new_node->key = new_key;
- new_node->height = height;
- for (int i = 0; i < new_node->height; i++)
- {
- new_node->next[i] = update[i]->next[i];
- update[i]->next[i] = new_node;
- new_node->litera = 'T';
- }
- return true;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement