Advertisement
Guest User

Untitled

a guest
Jan 28th, 2020
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.66 KB | None | 0 0
  1. bool insert(skiplist* head, int new_key, int LMAX)
  2. {
  3. skiplist* x = head;
  4. int height = random_level(LMAX);
  5. skiplist* update[LMAX];
  6.  
  7.  
  8. for (int i = height - 1; i >= 0; i--)
  9. {
  10. while (x->next[i]->key < new_key)
  11. {
  12. x = x->next[i];
  13. }
  14. update[i] = x;
  15.  
  16. }
  17. x = x->next[0];
  18. if (x->key == new_key)
  19. {
  20. x->litera = 'D';
  21. return false;
  22. }
  23. skiplist* new_node = new skiplist;
  24. new_node->next = new skiplist*[height];
  25.  
  26. new_node->key = new_key;
  27. new_node->height = height;
  28.  
  29. for (int i = 0; i < new_node->height; i++)
  30. {
  31. new_node->next[i] = update[i]->next[i];
  32. update[i]->next[i] = new_node;
  33. new_node->litera = 'T';
  34. }
  35. return true;
  36. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement