实现链表的基本运算
//链表的基本操作
class Linkegg{
public Node head;
public int size=0;
private class Node{
int data;
Node next;
}
public boolean isEmpty(){
return head.next==null;
}
//初始化
public void addLast(int a[]){
Node newData;
Node oldLast=new Node();
head=oldLast;
for(int i=0;i<a.length;i++){
newData=new Node();
newData.data=a[i];
oldLast.next=newData;
newData.next=null;
oldLast=newData;
size++;
}
}
//链中插入
public void insertData(int d,int index){
Node p=new Node();
p.data=d;
Node upa=head;
Node down=head;
for(int i=0;i<index;i++){
upa=down;
down=down.next;
}
upa.next=p;
p.next=down;
size++;
}
public void toStringData(){
Node da;
da=head.next;
while(da!=null){
System.out.print(da.data+" ");
da=da.next;
}
System.out.println(" ");
}
//链尾插入
public void addListData(int a){
Node p=new Node();
p.data=a;
Node daa=head;
for(int i=0;i<size;i++){
daa=daa.next;
}
daa.next=p;
p.next=null;
size++;
}
//链头插入
public void addHead(int a){
Node p=new Node();
p.data=a;
p.next=head.next;
head.next=p;
size++;
}
public void movie(int index){
Node p=head;
for(int i=0;i<index-1;i++){
p=p.next;
}
p.next=p.next.next;
}
}
public class myLink{
public static void main(String[] args) {
// TODO Auto-generated method stub
int a[]={0,9,6,3};
Linkegg aa=new Linkegg();
aa.addLast(a);
aa.toStringData();
aa.insertData(2,2);
aa.toStringData();
aa.addListData(5);
aa.toStringData();
aa.addHead(5);
aa.toStringData();
aa.movie(2);
aa.toStringData();
}
}
演示结果