zoukankan      html  css  js  c++  java
  • 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());
        }
    
    }
    

    这里写图片描写叙述

  • 相关阅读:
    CSS3背景
    CSS3嵌入字体
    CSS3控制单行文本的溢出
    CSS3渐变色彩
    CSS3图片边框
    CSS中的各类选择器
    HTML 5入门知识——Drag
    今天是星期五,昨天下午回来之前,公司的人员都等施佳回来开会讨论需求
    这些天晚上有点睡不好,也是关于一个事情
    昨天回来后11点的时候吧午饭弄了
  • 原文地址:https://www.cnblogs.com/mthoutai/p/7141019.html
Copyright © 2011-2022 走看看