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();
}
}
}