本文主要是介绍JAVA只有增删改查的简易单向链表,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
class Node<T>{//节点类
public T data;
public Node<T> next;
public Node() {}
public Node(T data) {
this.data = data;
}
}
public class MyList<T> {//链表类
private Node<T> head = new Node<T>();
public int nodeSize() {//链表大小
int sum=0;
Node<T> p = new Node<T>();
p=head;
while(p.next!=null) {
sum++;
p=p.next;
}
return sum;
}
public void addNode(T data) {//往链表尾部添加节点,具体位置添加的方法还没搞,和删除差不多
Node<T> node = new Node<T>();
if(head.next==null) {
head.next=node;
node.data=data;
node.next=null;
}else {
Node<T> p = new Node<T>();
p=head;
while(p.next!=null) {
p=p.next;
}
p.next=node;
node.data=data;
node.next=null;
}
}
public void seeNode() {//打印链表
Node<T> p = new Node<T>();
p=head;
while(p.next!=null) {
System.out.println(p.next.data);
p=p.next;
}
}
public void changeNode(int n,T data) {//修改链表的值
int m=0;
Node<T> p = new Node<T>();
p=head;
while(p.next!=null) {
p=p.next;
if(n==m) {
p.data = data;
break;
}
m++;
}
}
public void deleteNode(int n) {//删除下标为n的节点,下标从0开始
int m=0;
Node<T> p = new Node<T>();
p=head;
if(n==0) {
Node<T> q = new Node<T>();
q=p.next;
head.next=q.next;
}else{
while(p.next!=null) {
p=p.next;
if(n-1==m) {
break;
}
m++;
}
Node<T> q = new Node<T>();
q=p.next;
p.next=q.next;
}
}
public static void main(String[] args) {
MyList<Integer>myList= new MyList<Integer>();
myList.addNode(10);
myList.addNode(90);
myList.addNode(80);
myList.addNode(40);
myList.changeNode(0, 20);
myList.deleteNode(1);
System.out.println(myList.nodeSize());
myList.seeNode();
}
}
这篇关于JAVA只有增删改查的简易单向链表的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!