链表的基本操作

来源:互联网 发布:制表软件 编辑:程序博客网 时间:2024/06/06 04:34

实现链表的基本运算

//链表的基本操作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 stubint 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();        }}

演示结果

0 0