package node; public class LNode { private int data; // 脚标 private LNode next;// 表示下一个节点 public int getData() { return data; } public void setData(int data) { this.data = data; } public LNode getNext() { return next; } public void setNext(LNode next) { this.next = next; } }
package node; public class Linklist { private LNode head; // 定义一个头节点 // 创建链表的方法 public void createlink(int[] a) { LNode pnew;// 表示新产生的节点 LNode ptail = new LNode();// 表示末节点 head = ptail;// 开始头节点跟末节点相同 for (int i = 0; i < a.length; i++) { pnew = new LNode(); pnew.setData(a[i]); // 表示新节点的角标 ptail.setNext(pnew); pnew.setNext(null);// 把新长生成的节点节点设置为空 ptail = pnew; // 把末尾设置当前最新的,实质是在移动末尾 } } public static void main(String[] args) { Linklist ll = new Linklist(); int a[] = new int[10]; for (int i = 0; i < a.length; i++) { a[i] = i; } ll.createlink(a); //测试搜索的方法 ll.searchlink(1); } // 搜索的方法 public void searchlink(int value) { LNode ptr; ptr = head.getNext(); while (ptr != null) { if (value == ptr.getData()) { System.out.println("找到数据:" + ptr.getData()); break; } else { ptr = ptr.getNext(); } } if (ptr == null) { System.out.println("整个遍历完了,没找到数据"); } } //删除的方法 public void deletelink(int value){ LNode p = head; LNode ptr = head.getNext(); while(ptr != null){ if(ptr.getData() == value){ p.setNext(ptr.getNext());//此处覆盖 System.out.println("删除成功"); break; }else{ p = ptr; ptr = ptr.getNext(); } } } //定义插入节点发方法 public void insertlink(int pot,int value){ LNode ptr; LNode pnew; ptr = head.getNext(); while(ptr != null){ if (pot == ptr.getData()){ pnew = new LNode (); pnew.setData(value); pnew.setNext(ptr.getNext()); ptr.setNext(pnew); System.out.println("插入成功"); break; }else{ ptr = ptr.getNext(); } } if (ptr == null){ System.out.println("插入数据失败"); } } //循环打印出所有的 public void printLink(){ LNode ptr; ptr = head.getNext(); while (ptr != null){ System.out.println(ptr.getData()); ptr = ptr.getNext(); } } }