Advertisement
Guest User

Untitled

a guest
Dec 9th, 2016
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.86 KB | None | 0 0
  1. @Override
  2. public void addElement(N element) {
  3. size++;
  4. int elemLevel = 1;
  5. Node<N> upper = null;
  6. while (coinFlip() != 0) {
  7. elemLevel++;
  8. }
  9. while (elemLevel > level) {
  10. incListLevel();
  11. }
  12.  
  13. int howDeep = level - elemLevel; // Kiek lygių žemyn reikia paeiti, kad pradėtų dėt Node'us
  14. current = first;
  15.  
  16. boolean done = false;
  17. while (!done) {
  18. if (current.next != null) {
  19. if (element.compareTo(current.next.element) > 0) {
  20. current = current.next;
  21. } else if (howDeep == 0) {
  22. Node<N> newNode = new Node(element);
  23. newNode.next = current.next;
  24. current.next = newNode;
  25. if (upper != null) {
  26. upper.below = newNode;
  27. }
  28. if (current.below != null) {
  29. upper = newNode;
  30. current = current.below;
  31. } else {
  32. done = true;
  33. }
  34. } else {
  35. current = current.below;
  36. howDeep--;
  37. }
  38. } else if (howDeep == 0) {
  39. Node<N> newNode = new Node(element);
  40. newNode.next = current.next;
  41. current.next = newNode;
  42. if (upper != null) {
  43. upper.below = newNode;
  44. }
  45. if (current.below != null) {
  46. upper = newNode;
  47. current = current.below;
  48. } else {
  49. done = true;
  50. }
  51. } else {
  52. current = current.below;
  53. howDeep--;
  54. }
  55. }
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement