節點
單連結清單_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,如需轉載請自行聯系原作者