且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

单链表_JAVA描述《数据结构与算法分析》

更新时间:2022-09-14 21:56:29

节点
单链表_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描述《数据结构与算法分析》package DataStructures;
单链表_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描述《数据结构与算法分析》package DataStructures;
单链表_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描述《数据结构与算法分析》     * 
@param x
单链表_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描述《数据结构与算法分析》     * 
@param x
单链表_JAVA描述《数据结构与算法分析》     *            the item to search for.
单链表_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描述《数据结构与算法分析》            itr = itr.next;
单链表_JAVA描述《数据结构与算法分析》
单链表_JAVA描述《数据结构与算法分析》        return new LinkedListItr(itr);
单链表_JAVA描述《数据结构与算法分析》    }

单链表_JAVA描述《数据结构与算法分析》
单链表_JAVA描述《数据结构与算法分析》    /**
单链表_JAVA描述《数据结构与算法分析》     * Insert after p.
单链表_JAVA描述《数据结构与算法分析》     * 
单链表_JAVA描述《数据结构与算法分析》     * 
@param x
单链表_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,如需转载请自行联系原作者