• Java 实现一个链表


    public class MyList {
    
        static class Node {// 节点类
            Object data;
            Node next;
    
            public Node(Object data) {// 构造方法,为data赋值
                this.data = data;
                this.next = null;
            }
        }
    
        Node head;
    
        public MyList() {
            head = null;// 链表的构造方法
        }
    
        public void clear() {// 清除链表
            head = null;
        }
    
        public void bianli()// 遍历
        {
            Node p = head;
            while (p != null) {
                System.out.print(p.data + " ");
                p = p.next;
            }
            System.out.println();
        }
    
        public boolean isEmpty()// 推断是否为空
        {
            return head == null;
        }
    
        public int size() {// 节点个数
            Node p = head;
            int sum = 0;
            while (p != null) {
                sum++;
                p = p.next;
            }
            return sum;
        }
    
        // 在指定位置插入元素。下标从0開始
        public void insert(Object d, int pos) {
            if (pos < 0 || pos > size()) {
                throw new RuntimeException("下标错误");
            }
            Node newNode = new Node(d);
            if (pos == 0) {
                newNode.next = head;
                head = newNode;
            } else if (pos >= size() - 1) {
                get(size() - 1).next = newNode;
            } else {
                newNode.next = get(pos);
                get(pos - 1).next = newNode;
            }
        }
    
        public Node get(int pos) {
            if (pos < 0 || pos > size()) {
                throw new RuntimeException("下标错误");
            }
            if (pos == 0)
                return head;
            Node p = head;
            for (int i = 0; i < pos; i++)
                p = p.next;
            return p;
        }
    
        public static void main(String[] args) {
    
            MyList list = new MyList();
            list.insert(10, 0);
            list.insert(20, 1);
            list.insert(30, 0);
            list.insert(40, 1);
    
            System.out.println(list.size());
            list.bianli();
            System.out.println(list.isEmpty());
            System.out.println(list.get(2).data);
            list.clear();
            System.out.println(list.isEmpty());
        }
    
    }
    

    这里写图片描写叙述

  • 相关阅读:
    [算法] Tarjan算法求割点
    [题解] POJ2689 [质数距离]
    [题解] 「NOIP2009」最优贸易
    pyCharm更换主题、字体大小和编辑器字体颜色
    python之冒泡排序简单算法
    修改pip阿里镜像
    Postman工具简介
    接口文档解析
    HTTP接口请求
    接口(API)测试学习
  • 原文地址:https://www.cnblogs.com/mthoutai/p/7141019.html
Copyright © 2020-2023  润新知