public class NhLinkedList { private class Entry { private T value; private Entry next; public Entry(){ } public Entry(T value,Entry next){ this.value = value; this.next = next; } } private Entry first; private Entry last; private int size; public NhLinkedList(){ first = null; last = null; } // 增 //头插 public void addHead(E value){ first = new Entry<>(value,first); size++; if(last == null){ last = first; } } //尾插 public void addEnd(E value){ Entry entry = new Entry<>(value,null); size++; last.next = entry; last = entry; if(first == null){ first = last; } } //第i个地方插入 public void addIni(int i,E value){ try { Entry entryI = first; for (int p = 1; p < i - 1; p++) { entryI = entryI.next; } Entry p = new Entry<>(value, entryI.next); size++; entryI.next = p; }catch (NullPointerException e){ System.out.println(e); } } // 删 //初始化单链表 public void init(){ first = null; last = null; } //删除第i个 ,,判断第i个是否可删除 public void delI(int i){ if(i>size || i<1){ System.out.println("越界"); return; } //头删 if(i == 1){ first = first.next; size--; } //尾删 else if(i == size){ last = null; size--; } //中间删除 else { Entry entryI = first; for (int p = 1; p < i-1; p++) { entryI = entryI.next; } entryI.next = entryI.next.next; entryI.next.value = null; entryI.next.next = null; size--; } } // 改 //改第i个 public void change(E value,int i){ Entry entryI = first; for(int p = 1;p < i;p++){ entryI = entryI.next; } entryI.value = value; } // 查 //查第i个 public void searchI(int i){ try { Entry entryI = first; for (int p = 1; p < i; p++) { entryI = entryI.next; } System.out.println("第 "+i+" 个是: "+entryI.value); }catch (NullPointerException e){ System.out.println("超出查询范围"); } } //按查value public void searchV(E value){ try { Entry entryV = first; int i = 1; while (i < size) { if (entryV.value == value) { System.out.println(value+" 在第 :" + i + "个"); } entryV = entryV.next; } System.out.println("没有查到"); }catch (NullPointerException e){ System.out.println("超出查询范围"); } } //打印链表 public void show(){ for(Entry p = first ; p!=null ; p=p.next){ System.out.print(p.value); } } }
无头单链表 java_【Java数据结构】无头结点单链表
最新推荐文章于 2023-12-15 17:02:37 发布