public class List<T>{
//java版本的链表,C++通过指针实现节点的连接(指针的实质还是引用,即地址)
//所以,java中只需把->换做., 操作节点中下一个节点的地址即可
private class Node{
T data;
Node next;
public Node(){
next=null;
}
public Node(T d){
data=d;
next=null;
}
}
Node header;
public List(){
header=new Node();
header.next=null;
}
T get(int i) {
Node p=header;
while(p.next!=null && i-->0)
p=p.next;
return p.data;
}
boolean insertLast(T e) {
Node newNode=new Node(e);
Node p=header;
while(p.next!=null)
p=p.next;
p.next=newNode;
return true;
}
boolean remove(int i) {
Node p=header,del;
if(i<1)
return false;
while(p.next!=null && --i>0) {
p=p.next;
}
del=p.next;
p.next=del.next;
return true;
}
void print() {
Node p=header;
while(p.next!=null) {
p=p.next;
System.out.print(p.data+" ");
}
System.out.println();
}
public static void main(String[] args) {
List<Student> list= new List<Student>();
list.insertLast(new Student("xiaoming",01));
list.insertLast(new Student("java",02));
list.insertLast(new Student("java",03));
list.insertLast(new Student("java",04));
list.insertLast(new Student("xiaohong",05));
list.print();
for(int i=1; i<=5; i++)
if(list.get(i).name.equals("java"))
list.remove(i);
list.print();
}
}
java版链表
最新推荐文章于 2024-08-17 08:59:42 发布