分类:N07_Java
LinkNode.java package com.wpf.Test; /** * @Auther: wpf * @Date: 2025/9/10 - 09 - 10 - 8:15 * @Description: com.wpf.Test * @version: 1.0 */ public class LinkNode { // 上一个元素的地址: private LinkNode pre; // 当前存入的元素; private Object obj; // 下一个元素的地址; private LinkNode next; public LinkNode getPre() { return pre; } public void setPre(LinkNode pre) { this.pre = pre; } public Object getObj() { return obj; } public void setObj(Object obj) { this.obj = obj; } public LinkNode getNext() { return next; } public void setNext(LinkNode next) { this.next = next; } @Override public String toString() { return "LinkNode{" + "pre=" + pre + ", obj=" + obj + ", next=" + next + '}'; } }
MyLinkedList
package com.wpf.Test; /** * @Auther: wpf * @Date: 2025/9/10 - 09 - 10 - 8:17 * @Description: com.wpf.Test * @version: 1.0 */ public class MyLinkedList { // 链中一定有一个首节点 LinkNode first; // 链中一定有一个尾节点 LinkNode last; // 计数器 int count = 0; // 提供一个构造器 public MyLinkedList(){ } //添加元素 public void add(Object o){ if(first==null){ // 将添加的元素分装为一个Node对象 LinkNode n = new LinkNode(); n.setPre(null); n.setObj(o); n.setNext(null); first = n; last = n; }else{ LinkNode n = new LinkNode(); n.setPre(last); n.setObj(o); n.setNext(null); // 当前链中的最后一个节点的下一个元素也要指向n last.setNext(n); // 将最后一个节点变为n last = n; } count++; } // 得到集合中的元素数量 public int getSize(){ return count; } // 通过下标获取元素 public Object get(int index){ LinkNode n = first; for (int i = 0; i < index; i++) { n = n.getNext(); } return n.getObj(); } } class Test{ public static void main(String[] args) { MyLinkedList ml = new MyLinkedList(); ml.add("aa"); ml.add("bb"); ml.add("cc"); ml.add("dd"); ml.add("ee"); System.out.println(ml.getSize()); System.out.println(ml.get(2)); } }