public void displayList() { LinkNode currentLink = firstNode; while (currentLink.getNext() != null) { currentLink.printList(); currentLink = currentLink.getNext(); } }
public static void main(String args[]) { LinkNode linkNode = new LinkNode(10); linkNode.next = new LinkNode(20); linkNode.next.next = new LinkNode(30); linkNode.next.next.next = new LinkNode(40); LinkNode reversedLinkedList = stackImplementation(linkNode); System.out.println("Done"); }
public LinkNode find(int id) { LinkNode node = firstNode; // 循环递归查找 while (node.getId() != id) { if (node.getNext() != null) { node = node.getNext(); } else { return null; } } return node; }
public static void main(String[] args) { SingleLinkList link = new SingleLinkList(); link.insert(2); link.insert(1); link.insert(10); link.displayList(); System.out.println("====="); link.removeFirst(); link.displayList(); System.out.println("-------"); LinkNode find = link.find(10); find.printList(); }
/** * Lays out all children in a hierarchical decomposition graph. Nodes are arranged using * layoutNode() and edges are updated afterwards. This also updates it's own bounds according to * the placement of the children. */ @Override protected void layoutChildren() { // layout all top nodes (not LinkNodes) double firstX[] = new double[project.getCategorySize() + 2]; for (int i = 0; i < getChildrenCount(); i++) { PNode node = getChild(i); if (!(node instanceof LinkNode)) { layoutNode(node, 0, firstX); } } // Update all LinkNodes for (int i = 0; i < getChildrenCount(); i++) { PNode node = getChild(i); if (node instanceof LinkNode) { ((LinkNode) node).updateLine(); } } // Update bounds double maxX = 0; for (int i = 0; i < firstX.length; i++) { if (firstX[i] > maxX) { maxX = firstX[i]; } else if (firstX[i] == 0) { double height = i * (CategoryNode.HEIGHT + CategoryNode.PADDING_HEIGHT); setBounds(0, 0, maxX, height); break; } } }
public Integer pop() { if (top.next == null) { return null; } int val = top.next.data; top.next = top.next.next; return val; }
public static LinkNode stackImplementation(LinkNode linkedList) { Stack<LinkNode> stack = new Stack<>(); LinkNode tempNode = linkedList; while (tempNode != null) { stack.push(tempNode); tempNode = tempNode.next; } tempNode = stack.pop(); linkedList = tempNode; while (!stack.empty()) { tempNode.next = stack.pop(); tempNode = tempNode.next; } tempNode.next = null; return linkedList; }
public LinkNode remove(int id) { LinkNode needDelete = firstNode; LinkNode previNode = firstNode; while (needDelete.getId() != id) { if (needDelete.getNext() == null) { return null; } else { previNode = needDelete; needDelete = needDelete.getNext(); } } if (needDelete.equals(firstNode)) { firstNode = firstNode.getNext(); } else { previNode.setNext(needDelete.getNext()); } return needDelete; }
public void push(Integer data) { LinkNode node = new LinkNode(data); node.next = top.next; top.next = node; }
Stack() { top = new LinkNode(-1); top.next = null; }
public void insert(int id) { LinkNode newLink = new LinkNode(id); newLink.setNext(firstNode); firstNode = newLink; }
public LinkNode removeFirst() { LinkNode currentLink = firstNode.getNext(); firstNode = currentLink; return currentLink; }