Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @Override
- public void addElement(N element) {
- size++;
- int elemLevel = 1;
- Node<N> upper = null;
- while (coinFlip() != 0) {
- elemLevel++;
- }
- while (elemLevel > level) {
- incListLevel();
- }
- int howDeep = level - elemLevel; // Kiek lygių žemyn reikia paeiti, kad pradėtų dėt Node'us
- current = first;
- boolean done = false;
- while (!done) {
- if (current.next != null) {
- if (element.compareTo(current.next.element) > 0) {
- current = current.next;
- } else if (howDeep == 0) {
- Node<N> newNode = new Node(element);
- newNode.next = current.next;
- current.next = newNode;
- if (upper != null) {
- upper.below = newNode;
- }
- if (current.below != null) {
- upper = newNode;
- current = current.below;
- } else {
- done = true;
- }
- } else {
- current = current.below;
- howDeep--;
- }
- } else if (howDeep == 0) {
- Node<N> newNode = new Node(element);
- newNode.next = current.next;
- current.next = newNode;
- if (upper != null) {
- upper.below = newNode;
- }
- if (current.below != null) {
- upper = newNode;
- current = current.below;
- } else {
- done = true;
- }
- } else {
- current = current.below;
- howDeep--;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement