private void split(Transaction tx, boolean isAddFirst) throws IOException { ListNode<Key, Value> extension = getContainingList().createNode(tx); if (isAddFirst) { // head keeps the first entry, insert extension with the rest extension.setEntries(entries.getHead().splitAfter()); extension.setNext(this.getNext()); extension.store(tx, isAddFirst); this.setNext(extension.getPageId()); } else { extension.setEntries(entries.getTail().getPrevious().splitAfter()); extension.setNext(this.getNext()); extension.store(tx, isAddFirst); getContainingList().setTailPageId(extension.getPageId()); this.setNext(extension.getPageId()); } store(tx, true); }
ListNode curr = head; for (int skip = 1; skip < index; skip++) curr = curr.getNext(); return curr;
static ListNode ReverseLinkedList(ListNode headNode) { ListNode headNodeTemp = headNode; ListNode tempNode = headNode.getNext(); headNodeTemp.setNext(null); ListNode currentNode = headNodeTemp; while(tempNode != null) {...
ListNode temp = first; while (temp != null){ temp.getEmployee().incrementYears(1); temp = temp.getNext(); }
@Override public String toString(){ StringBuilder builder = new StringBuilder(); builder.append("ReferenceBasedList["); ListNode currentElement = head; while (currentElement != null){ builder.append(currentElement.toString()); currentElement = currentElement.getNext(); //seperator if required: if (currentElement != null){ builder.append(", "); } } builder.append("]"); return builder.toString(); }
//when instantiated, MagazineList's list variable is set to null public void add (Magazine mag) { ListNode node = new ListNode (mag, null); ListNode current; if (list == null) list = node; else { current = list; // you list head while (node.compareTo(current) < 0) current = current.getNext(); ListNode next = current.getNext(); current.setNext(node); node.setNext(next); } }
public MyList RecReverse() { //my attempt at the recursive method if (head.getNext() == null) { return this; } MyList remainder = new MyList(); remainder.head = head.getNext(); // New list has rest of this list (after head) ListNode temp = new ListNode(head.getString()); // save the first thing in list remainder = remainder.RecReverse(); //reverse the things in the new 2nd part list remainder.end().setNext(temp); // put old head on the end return remainder; } private ListNode end() { ListNode curr = head; while (curr.getNext() != null) { curr = curr.getNext(); } return curr; }
public void addToBack(ListNode current, ListNode newNode) { //generic method that adds the node at the end ListNode nx = current.getNext(); if(nx == null) {//base case: current is the last node current.setNext(newNode); } else {//recursive case, current is not the next node addToBack(nx,newNode); } }
void walkList(ListNode n) { doSomething(n); if (n.hasNext()) { walkList(n.getNext()); } }
if (head.getNext() == null) { } else if (head.getNext().getTrain().getTrainNumber() < myTrain.getTrainNumber()) { newNode.setNext(head.getNext()); head.setNext(newNode); count++; } else { add(myTrain, head.getNext()); if (currentNode.getNext() == null) { } else if (currentNode.getNext().getTrain().getTrainNumber() == trainNumber) { ListNode tmp = currentNode.getNext(); currentNode.setNext(currentNode.getNext().getNext()); return tmp.getTrain(); } else { return delete(trainNumber, currentNode.getNext());
public void yourMainMethod() { ListNode head = new ListNode("Overflow!", null); head = new ListNode("Stack", head); head = new ListNode("in", head); head = new ListNode("is", head); head = new ListNode("This", head); printList(head); System.out.println(); printList(head); } //note different name, to clarify this is a separate reference public static void printList(ListNode node) { while(node != null) { System.out.print(node.getValue()+" "); node = node.getNext(); //node.setValue(new Object());//note that this would change the state inside the ListNode passed in } }
public void addToBack(String name, String telephoneNum, String email, String address, String dob) { //separate responsibilities, by constructing the node first addToBack(new ListNode(name,telephoneNum,email,address,dob)); } public void addToBack(ListNode newNode) { //do not use a continuation state in a class, fetch the head, inspect the head and if not null pass to the recursion method if(this.head == null) { this.head = newNode; } else { this.addToBack(this.head,newNode); } } public void addToBack(ListNode current, ListNode newNode) { //generic method that adds the node at the end if(current.getNext() == null) {//base case: current is the last node current.setNext(newNode); } else {//recursive case, current is not the next node addToBack(current.getNext(),newNode); } }
private void split(Transaction tx, boolean isAddFirst) throws IOException { ListNode<Key, Value> extension = getContainingList().createNode(tx); if (isAddFirst) { // head keeps the first entry, insert extension with the rest extension.setEntries(entries.getHead().splitAfter()); extension.setNext(this.getNext()); extension.store(tx, isAddFirst); this.setNext(extension.getPageId()); } else { extension.setEntries(entries.getTail().getPrevious().splitAfter()); extension.setNext(this.getNext()); extension.store(tx, isAddFirst); getContainingList().setTailPageId(extension.getPageId()); this.setNext(extension.getPageId()); } store(tx, true); }
private void split(Transaction tx, boolean isAddFirst) throws IOException { ListNode<Key, Value> extension = getContainingList().createNode(tx); if (isAddFirst) { // head keeps the first entry, insert extension with the rest extension.setEntries(entries.getHead().splitAfter()); extension.setNext(this.getNext()); extension.store(tx, isAddFirst); this.setNext(extension.getPageId()); } else { extension.setEntries(entries.getTail().getPrevious().splitAfter()); extension.setNext(this.getNext()); extension.store(tx, isAddFirst); getContainingList().setTailPageId(extension.getPageId()); this.setNext(extension.getPageId()); } store(tx, true); }
private void split(Transaction tx, boolean isAddFirst) throws IOException { ListNode<Key, Value> extension = getContainingList().createNode(tx); if (isAddFirst) { // head keeps the first entry, insert extension with the rest extension.setEntries(entries.getHead().splitAfter()); extension.setNext(this.getNext()); extension.store(tx, isAddFirst); this.setNext(extension.getPageId()); } else { extension.setEntries(entries.getTail().getPrevious().splitAfter()); extension.setNext(this.getNext()); extension.store(tx, isAddFirst); getContainingList().setTailPageId(extension.getPageId()); this.setNext(extension.getPageId()); } store(tx, true); }