Advertisement
nirn

Untitled

Apr 23rd, 2018
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.31 KB | None | 0 0
  1. void fixUp(Item heap[], int k) { h(key, i) = (h'(key)+i2 ) % m.
  2. while (k > 1 // Item is not root h(key, i) = (h'(key) + i) % m,
  3. && heap[k/2] < heap[k]) { // while parent is less than child h(key, i) = (h'(key) + i(g(key)) % m,
  4. swap(heap[k], heap[k/2]; h’(key) = key % m
  5. k /= 2; // move up
  6. }
  7. }
  8. void fixDown(Item heap[], int heapsize, int k) {
  9. while (2 * k <= heapsize) {
  10. int j = 2 * k; // index of left child
  11. if (j < heapsize && heap[j] < heap[j + 1]) j++;
  12. if (heap[k] >= heap[j]) break;
  13. swap(heap[k], heap[j]);
  14. k = j;
  15. }
  16. }
  17. void pop_back(Node * & head){
  18. Node * p = head;
  19. if(p) {
  20. if(p->next) {
  21. while(p->next->next) p = p->next;
  22. delete p->next;
  23. p->next = NULL; }
  24. else {
  25. delete p;
  26. head = nullptr; }}}
  27.  
  28. void l_push_back(Node * & head, int v){
  29. Node * p, * e;
  30. e = new Node;
  31. e->next = NULL;
  32. e->data = v;
  33. p = head;
  34. if(p) {
  35. while(p->next) p = p->next;
  36. p->next = e; }
  37. else head = e;}
  38.  
  39. void l_insert_before(Node * & head, Node * e, int v){
  40. Node * p = head;
  41. if(p == e) l_push_front(head,v);
  42. else {
  43. while(p->next != e) p = p->next;
  44. p->next = new slistEl;
  45. p->next->next = e;
  46. p->next->data = v;}}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement