欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

java 数据结构单链表的实现

程序员文章站 2023-12-02 22:58:58
java 数据结构单链表的实现    单链表实现链表的打印及元素删除操作,链表的实现主要是next属性的定义,将一堆节点关联起来的。实现简单的链表如下...

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对象并返回。链表的简单知识,记录于此。

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