软件编程
位置:首页>> 软件编程>> java编程>> java 数据结构单链表的实现

java 数据结构单链表的实现

作者:lqh  发布时间:2022-07-24 09:45:33 

标签:java,数据结构,单链表

java 数据结构单链表的实现

   单链表实现链表的打印及元素删除操作,链表的实现主要是next属性的定义,将一堆节点关联起来的。实现简单的链表如下:


public class LinkNode {
 private int value;
 private LinkNode next;

public LinkNode(int x) {
   value = x;
 }

public LinkNode getNext(){
   return next;
 }

public void setNext(LinkNode next) {
   this.next = next;
 }

public int getValue() {
   return value;
 }
}

       链表操作工具类如下:


public class LinkNodeUtil {
 public LinkNode deleteNode(LinkNode list,LinkNode node) {
   //空链表
   if(node==null||list==null||list.getNext()==null){
     return list;
   }

//查找node节点
   LinkNode curNode = list;
   LinkNode preNode = null;
   LinkNode next = list.getNext();
   while(curNode!=null){
     if(curNode.getValue()==node.getValue()){//找到
       System.out.println("找到待删除对象了。"+node.getValue());
       break;
     }
     preNode = curNode;
     curNode = next;
     next = next.getNext();
   }

//删除node节点  
   if(preNode==null){
     //第一个元素删除操作直接修正list为next:curNode-next
     return next;
   }else{
     //删除中间节点中间:preNode-curNode-next
     preNode.setNext(next);
     return list;
   }
 }

public void printListNode(LinkNode list){
   LinkNode node = list;
   while(node!=null){
     System.out.println(node.getValue());
     node = node.getNext();
   }
 }

public static void main(String[] args) {
   LinkNode n1 = new LinkNode(1);
   LinkNode n2 = new LinkNode(2);
   LinkNode n3 = new LinkNode(3);
   LinkNode n4 = new LinkNode(4);
   n1.setNext(n2);
   n2.setNext(n3);
   n3.setNext(n4);
   n4.setNext(null);
   LinkNodeUtil s = new LinkNodeUtil();
   s.printListNode(n1);
   s.printListNode(s.deleteNode(n1, n3));
 }
}

      注意链表删除节点如果是第一个节点的话,直接将链表对象赋值给next对象并返回。链表的简单知识,记录于此。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

来源:http://blog.csdn.net/wojiushiwo945you/article/details/50563293

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com