首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

循环链表的经典兑现(JAVA)

2012-12-26 
循环链表的经典实现(JAVA)public class LinkedListNode {//链表节点public LinkedListNode previous//前

循环链表的经典实现(JAVA)

public class LinkedListNode {//链表节点    public LinkedListNode previous;//前一节点    public LinkedListNode next;//后一节点    public Object object;//节点中存的值       public long timestamp;     public LinkedListNode(Object object, LinkedListNode next, LinkedListNode previous)    {        this.object = object;        this.next = next;        this.previous = previous;    }       public void remove() {//删除自己        previous.next = next;        next.previous = previous;    }        public String toString() {        return object.toString();    }}import java.util.*;public class LinkedList {//循环链表    //头指针,哑的,第一个节点的前面,最后一个节点的后面    private LinkedListNode head = new LinkedListNode("head", null, null);      public LinkedList() {        head.next = head.previous = head;    }       public LinkedListNode getFirst() {//获取循环链表的第一个节点        LinkedListNode node = head.next;        if (node == head) {            return null;        }        return node;    }       public LinkedListNode getLast() {//获取循环链表的最后一个节点        LinkedListNode node = head.previous;        if (node == head) {            return null;        }        return node;    }       public LinkedListNode addFirst(LinkedListNode node) {//将节点插入到链表的第一个位置,头节点之后.        node.next = head.next;        node.previous = head;        node.previous.next = node;        node.next.previous = node;        return node;    }       public LinkedListNode addFirst(Object object) {//将值插入到链表的第一个位置,头节点之后.        LinkedListNode node = new LinkedListNode(object, head.next, head);        node.previous.next = node;        node.next.previous = node;        return node;    }    public LinkedListNode addLast(Object object) {//将值插入到链表的最后一个位置,头节点之前        LinkedListNode node = new LinkedListNode(object, head, head.previous);        node.previous.next = node;        node.next.previous = node;        return node;    }     public void clear() {//清空循环链表        //Remove all references in the list.        LinkedListNode node = getLast();        while (node != null) {            node.remove();            node = getLast();        }        //Re-initialize.        head.next = head.previous = head;    }    public String toString() {        LinkedListNode node = head.next;        StringBuffer buf = new StringBuffer();        while (node != head) {            buf.append(node.toString()).append(", ");            node = node.next;        }        return buf.toString();    }}


源码:

热点排行