节点
单链表_JAVA描述《数据结构与算法分析》 package DataStructures;
单链表_JAVA描述《数据结构与算法分析》
单链表_JAVA描述《数据结构与算法分析》 class ListNode {
单链表_JAVA描述《数据结构与算法分析》
单链表_JAVA描述《数据结构与算法分析》 //Frientdly data;accessible by other package routines
单链表_JAVA描述《数据结构与算法分析》 Object element;
单链表_JAVA描述《数据结构与算法分析》 ListNode next;
单链表_JAVA描述《数据结构与算法分析》
单链表_JAVA描述《数据结构与算法分析》 // Constructers
单链表_JAVA描述《数据结构与算法分析》 ListNode(Object theElement) {
单链表_JAVA描述《数据结构与算法分析》 this(theElement, null);
单链表_JAVA描述《数据结构与算法分析》 }
单链表_JAVA描述《数据结构与算法分析》
单链表_JAVA描述《数据结构与算法分析》 ListNode(Object theElement, ListNode n) {
单链表_JAVA描述《数据结构与算法分析》 element = theElement;
单链表_JAVA描述《数据结构与算法分析》 next = n;
单链表_JAVA描述《数据结构与算法分析》
单链表_JAVA描述《数据结构与算法分析》 }
单链表_JAVA描述《数据结构与算法分析》 迭代器
单链表_JAVA描述《数据结构与算法分析》
单链表_JAVA描述《数据结构与算法分析》
单链表_JAVA描述《数据结构与算法分析》 public class LinkedListItr {
单链表_JAVA描述《数据结构与算法分析》 ListNode current; // Current position
单链表_JAVA描述《数据结构与算法分析》
单链表_JAVA描述《数据结构与算法分析》 LinkedListItr(ListNode theNode) {
单链表_JAVA描述《数据结构与算法分析》 current = theNode;
单链表_JAVA描述《数据结构与算法分析》
单链表_JAVA描述《数据结构与算法分析》
单链表_JAVA描述《数据结构与算法分析》 public boolean IsPastEnd() {
单链表_JAVA描述《数据结构与算法分析》 return current == null;
单链表_JAVA描述《数据结构与算法分析》
单链表_JAVA描述《数据结构与算法分析》
单链表_JAVA描述《数据结构与算法分析》 public Object Retrive() {
单链表_JAVA描述《数据结构与算法分析》 return IsPastEnd() ? null : current.element;
单链表_JAVA描述《数据结构与算法分析》
单链表_JAVA描述《数据结构与算法分析》
单链表_JAVA描述《数据结构与算法分析》 public void Advance() {
单链表_JAVA描述《数据结构与算法分析》 if (!IsPastEnd())
单链表_JAVA描述《数据结构与算法分析》 current = current.next;
单链表_JAVA描述《数据结构与算法分析》
单链表_JAVA描述《数据结构与算法分析》
单链表_JAVA描述《数据结构与算法分析》 链表类
单链表_JAVA描述《数据结构与算法分析》
单链表_JAVA描述《数据结构与算法分析》
单链表_JAVA描述《数据结构与算法分析》 public class LinkedList {
单链表_JAVA描述《数据结构与算法分析》 private ListNode header;
单链表_JAVA描述《数据结构与算法分析》
单链表_JAVA描述《数据结构与算法分析》 public LinkedList() {
单链表_JAVA描述《数据结构与算法分析》 header = new ListNode(null);
单链表_JAVA描述《数据结构与算法分析》
单链表_JAVA描述《数据结构与算法分析》
单链表_JAVA描述《数据结构与算法分析》 public boolean IsEmpty() {
单链表_JAVA描述《数据结构与算法分析》 return header.next == null;
单链表_JAVA描述《数据结构与算法分析》
单链表_JAVA描述《数据结构与算法分析》
单链表_JAVA描述《数据结构与算法分析》 public void makeEmpty() {
单链表_JAVA描述《数据结构与算法分析》 header.next = null;
单链表_JAVA描述《数据结构与算法分析》
单链表_JAVA描述《数据结构与算法分析》
单链表_JAVA描述《数据结构与算法分析》 public LinkedListItr Zeroth() {
单链表_JAVA描述《数据结构与算法分析》 return new LinkedListItr(header);
单链表_JAVA描述《数据结构与算法分析》
单链表_JAVA描述《数据结构与算法分析》
单链表_JAVA描述《数据结构与算法分析》 public LinkedListItr First() {
单链表_JAVA描述《数据结构与算法分析》 return new LinkedListItr(header.next);
单链表_JAVA描述《数据结构与算法分析》
单链表_JAVA描述《数据结构与算法分析》
单链表_JAVA描述《数据结构与算法分析》 /**
单链表_JAVA描述《数据结构与算法分析》 * Return iterator corresponding to the first node containing an item.
单链表_JAVA描述《数据结构与算法分析》 *
单链表_JAVA描述《数据结构与算法分析》 * @param x
单链表_JAVA描述《数据结构与算法分析》 * the item to search for.
单链表_JAVA描述《数据结构与算法分析》 * @return an iterator; iterator IsPastEnd if item is not found.
单链表_JAVA描述《数据结构与算法分析》 */
单链表_JAVA描述《数据结构与算法分析》 public LinkedListItr Find(Object x) {
单链表_JAVA描述《数据结构与算法分析》 ListNode itr = header.next;
单链表_JAVA描述《数据结构与算法分析》
单链表_JAVA描述《数据结构与算法分析》 while (itr != null && !itr.element.equals(x))
单链表_JAVA描述《数据结构与算法分析》 itr = itr.next;
单链表_JAVA描述《数据结构与算法分析》
单链表_JAVA描述《数据结构与算法分析》 return new LinkedListItr(itr);
单链表_JAVA描述《数据结构与算法分析》
单链表_JAVA描述《数据结构与算法分析》
单链表_JAVA描述《数据结构与算法分析》
单链表_JAVA描述《数据结构与算法分析》 * Remove th first occurrence of an item.
单链表_JAVA描述《数据结构与算法分析》
单链表_JAVA描述《数据结构与算法分析》
单链表_JAVA描述《数据结构与算法分析》 * the item to remove.
单链表_JAVA描述《数据结构与算法分析》
单链表_JAVA描述《数据结构与算法分析》 public void Remove(Object x) {
单链表_JAVA描述《数据结构与算法分析》 LinkedListItr p = FindPrevious(x);
单链表_JAVA描述《数据结构与算法分析》
单链表_JAVA描述《数据结构与算法分析》 if (p.current.next != null)
单链表_JAVA描述《数据结构与算法分析》 p.current.next = p.current.next.next; // Bypass deleted node
单链表_JAVA描述《数据结构与算法分析》
单链表_JAVA描述《数据结构与算法分析》
单链表_JAVA描述《数据结构与算法分析》
单链表_JAVA描述《数据结构与算法分析》 * Return itreator prior to the first node containing an item.
单链表_JAVA描述《数据结构与算法分析》
单链表_JAVA描述《数据结构与算法分析》
单链表_JAVA描述《数据结构与算法分析》
单链表_JAVA描述《数据结构与算法分析》 * @return appropriate iterator if the item is found.Otherwise, the iterator
单链表_JAVA描述《数据结构与算法分析》 * corresponding to the last element in the lis is returned.
单链表_JAVA描述《数据结构与算法分析》
单链表_JAVA描述《数据结构与算法分析》 public LinkedListItr FindPrevious(Object x) {
单链表_JAVA描述《数据结构与算法分析》 ListNode itr = header;
单链表_JAVA描述《数据结构与算法分析》
单链表_JAVA描述《数据结构与算法分析》 while (itr.next != null && !itr.next.element.equals(x))
单链表_JAVA描述《数据结构与算法分析》
单链表_JAVA描述《数据结构与算法分析》
单链表_JAVA描述《数据结构与算法分析》
单链表_JAVA描述《数据结构与算法分析》
单链表_JAVA描述《数据结构与算法分析》
单链表_JAVA描述《数据结构与算法分析》
单链表_JAVA描述《数据结构与算法分析》 * Insert after p.
单链表_JAVA描述《数据结构与算法分析》
单链表_JAVA描述《数据结构与算法分析》
单链表_JAVA描述《数据结构与算法分析》 * the item to insear.
单链表_JAVA描述《数据结构与算法分析》 * @param p
单链表_JAVA描述《数据结构与算法分析》 * the position prior to the newly inserted item.
单链表_JAVA描述《数据结构与算法分析》
单链表_JAVA描述《数据结构与算法分析》 public void Insert(Object x, LinkedListItr p) {
单链表_JAVA描述《数据结构与算法分析》 if (p != null && p.current != null)
单链表_JAVA描述《数据结构与算法分析》 p.current.next = new ListNode(x, p.current.next);
单链表_JAVA描述《数据结构与算法分析》
单链表_JAVA描述《数据结构与算法分析》
单链表_JAVA描述《数据结构与算法分析》 // Simple print method
单链表_JAVA描述《数据结构与算法分析》 public static void PrintLinkedList(LinkedList theList) {
单链表_JAVA描述《数据结构与算法分析》 if (theList.IsEmpty())
单链表_JAVA描述《数据结构与算法分析》 System.out.print("Empty list");
单链表_JAVA描述《数据结构与算法分析》 else {
单链表_JAVA描述《数据结构与算法分析》 LinkedListItr itr = theList.First();
单链表_JAVA描述《数据结构与算法分析》 for (; !itr.IsPastEnd(); itr.Advance())
单链表_JAVA描述《数据结构与算法分析》 System.out.print(itr.Retrive() + " ");
单链表_JAVA描述《数据结构与算法分析》 }
单链表_JAVA描述《数据结构与算法分析》
单链表_JAVA描述《数据结构与算法分析》 System.out.println();
单链表_JAVA描述《数据结构与算法分析》
单链表_JAVA描述《数据结构与算法分析》
单链表_JAVA描述《数据结构与算法分析》 本文转自冬冬博客园博客,原文链接:http://www.cnblogs.com/yuandong/archive/2006/08/19/481154.html,如需转载请自行联系原作者