• [Java]单项链表与双端链表[原]


    package com.black.datastructures.link;

    /**
     * 链接点
     *
     * @author BlackWinter
     *
     * @date 2010-7-7 下午10:45:24
     *
     * @file com.black.datastructures.link.Link.java
     *
     * @version 1.0
     */

    public class Link {
        public int key;

        public double value;

        public Link next;

        public Link(int id, double date) {
            this.key = id;
            value = date;
        }

        public void displayLink() {
            System.out.printf("{%s,%s} ", key, value);
        }
    }


    package com.black.datastructures.link;

    /**
     * 单向链表
     *
     * @author BlackWinter
     *
     * @date 2010-7-7 下午10:35:10
     *
     * @file com.black.datastructures.link.LinkList.java
     *
     * @version 1.0
     */

    public class LinkList {
        private Link first;

        public LinkList() {
            first = null;
        }

        public boolean isEmpty() {
            return first == null;
        }

        /* 在链表头部插入新节点 */
        public void insertFirst(int id, double date) {
            Link link = new Link(id, date);
            link.next = first;
            first = link;
        }

        /* 删除链表的头部节点 */
        public Link deleteFirst() {
            Link temp = first;
            first = first.next;
            return temp;
        }

        /* 根据key查询指定的链接点 */
        public Link find(int key) {
            Link current = first;
            while (current.key != key) {
                if (current.next == null)
                    return null;
                else
                    current = current.next;
            }
            return current;
        }
        
        /* 根据key删除指定节点 */
        public Link delete(int key) {
            Link current = first;
            Link previous = first;
            while (current.key != key) {
                if (current.next == null)
                    return null;
                else {
                    current = current.next;
                    previous = current;
                }
            }
            if (current == first)
                first = first.next;
            else
                previous.next = current.next;
            return current;
        }

        /* 显示链表的所有节点 */
        public void displayList() {
            System.out.println("First --> Last:");
            Link current = first;
            while (null != current) {
                current.displayLink();
                current = current.next;
            }
        }
    }


    package com.black.datastructures.link;

    /**
     * 双端链表
     *
     * @author BlackWinter
     *
     * @date 2010-7-11 下午09:09:12
     *
     * @file com.black.datastructures.link.DouEndLinkList.java
     *
     * @version 1.0
     */

    public class DouEndLinkList {
        private Link first;

        private Link last;

        public DouEndLinkList() {
            first = null;
            last = null;
        }

        public boolean isEmpty() {
            return first == null;
        }

        public void insertFirst(int id, double date) {
            Link newLink = new Link(id, date);
            if (isEmpty())
                last = newLink;
            newLink.next = first;
            first = newLink;
        }

        public void insertLast(int id, double date) {
            Link newLink = new Link(id, date);
            if (isEmpty())
                first = newLink;
            else
                last.next = newLink;
            last = newLink;
        }

        public void display() {
            System.out.println("List (first --> last):");

            Link current = first;
            while (null != current) {
                current.displayLink();
                current = current.next;
            }
        }
    }


    阅读(558) | 评论(0) | 转发(0) |
    0

    上一篇:没有了

    下一篇:国外威客网站大盘点

    给主人留下些什么吧!~~
    评论热议
  • 相关阅读:
    linux系统安装mysql数据库
    laypage分页控件使用方法
    could not get wglGetExtensionsStringARB
    Eclipse -- 自动补齐设置和其他用法
    Android开发--AndroidManifest.xml文件解析
    Java--常识
    课题论文写作时思路---目前存在的不足
    课题论文之调研---已有研究算法概述
    课题论文之调研---脏腑辨证
    Bayesian 网络分类算法
  • 原文地址:https://www.cnblogs.com/black/p/5171983.html
Copyright © 2020-2023  润新知