java实现单链表增删改查的实例代码详解

     包数据结构算法。链表;/*   *定义节点   *链表由节点构成   */公开课Node{   私人E E;//数据的数据   私人Node下一个;//指向下一个节点      公共节点(){      }      公共节点(E E) {   这一点。e=e;   }      公共NodegetNext () {   返回下一个;   }      公共空间setNext (Node下一个){   这一点。下一个=下一个;   }      公共E getE () {   返回e;   }      公共空间的汤(E E) {   这一点。e=e;   }   }            包数据结构算法。链表;/*   *定义实现类MyLinkedList   *实现链表的基本功能:增删改查   */公开课MyLinkedList{//声明头节点尾节点   私人Node头;   私人Node最后一次;//链表的大小   私人int大小;   私人int modcount;//计算被修改的次数      公共MyLinkedList () {   头=new Node();//实例化头结点   去年=头;   }/*   *返回单链表中存储的元素总数   */公共int大小(){   返回大小;   }/*   *获取指定索引位置的节点对象   */公共Nodeget (int指数){   如果(指数& lt;0 | |指数比;大小- 1)   返回null;   Node节点=head.getNext();//将头结点的下一个节点赋给节点   for (int i=0;我& lt;指数;我+ +){   节点=node.getNext();//获取节点的下一个节点   }   返回节点;   }/*   *获取指定索引位置的数据   */公共E getValue (int指数){   如果(指数& lt;0 | |指数比;大小- 1)   返回null;   Node节点=(指数);   返回node.getE ();   }/*   *增加元素   */公共空间添加(E E) {   Node节点=new Node (e);//以e实例化一个节点   last.setNext(节点);//往尾节点后追加节点   去年=节点;//该节点设为最后一个节点   大小+ +;   modcount + +;   }/*   *指定位置插入元素,返回插入的节点数据   */公共E添加(int指数E E) {   如果(指数& lt;0 | |指数比;大小- 1)   返回null;   Node节点=new Node (e);//实例化一个节点//找到插入的原节点   NodeoldNode=(指数);   如果(指数==0){//当索引为0时   head.setNext(节点);   其他}{//找到插入节点的上一个   NodebNode=(指数- 1);   bNode.setNext(节点);   }   node.setNext (oldNode);   大小+ +;   modcount + +;   返回oldNode.getE ();   }/*   *删除指定的节点e,并返回删除节点的数据   */公共E删除(int指数){   如果(指数& lt;0 | |指数比;大小- 1)   返回null;   如果(指数==0){//当索引为1,令头结点的下一个节点为头结点   Node节点=head.getNext ();   head.setNext (node.getNext ());   }//获取要删除节点的前一个节点   NodebNode=(指数- 1);//获取要删除的节点   Node节点=bNode.getNext ();//获取要删除节点的下一个节点   NodenNode=Node.getNext ();//删除该节点   bNode.setNext (nNode);//清除节点的下一个节点   Node.setNext(空);   大小,;   modcount + +;   返回Node.getE();//返回节点中的数据域   }/*   *修改指定位置的数据域并返回修改后的数据   */公共E组(int指数E E) {   如果(指数& lt;0 | |指数比;大小- 1)   返回null;//获取指定位置的原节点   Node节点=(指数);   node.setE (e);   modcount + +;   返回node.getE ();   }   }            包数据结构算法。链表;/*   *定义测试类   */公开课MyLinkedListTest {   公共静态void main (String [] args) {   MyLinkedList,列表=new MyLinkedList<的在();//测试   list.add(“一”);   list.add(“两个”);   list.add(“三”);   list.add(“四”);   list.add (0,“newone”);   list.add (1、“newtwo”);   for (int i=0;我& lt;list.size ();我+ +){   System.out.print (list.getValue(我)+ " ");   }//测试   System.out.println ();   列表。集(0," 111 ");   列表。集(1、“222”);   System.out.println (list.getValue (0) + " " + list.getValue (1));//测试删除   System.out.println ();   list.delete (1);   for (int i=0;我& lt;list.size ();我+ +){   System.out.print (list.getValue(我)+ " ");   }   }   }      

运行结果如下:

  

癹ava实现单链表增删改查的实例代码详解"

java实现单链表增删改查的实例代码详解