zoukankan      html  css  js  c++  java
  • Java实现链表结构的具体代码

    一、数据准备

     1. 定义节点

       2.   定义链表

               1.数据部分

               2.节点部分

    复制代码
    class DATA              //数据节点类型
    {
      String key;
      String name;
       int age;      
              
    }    
    
    class CLType                 //定义链表结构
    {
    DATA nodeData  =new DATA();
    CLType nextNode;
    }
    复制代码

    二、追加节点

    1. 首先分配内存。保存新增节点
    2. 从头应用head開始追个检查,直到找到最后结点
    3. 将表尾结点地址部分设置为新增节点的地址
    4. 将新增节点的地址部分置为null
    复制代码
    CLType CLAddEnd(CLType head,DATA nodeData)
    {
        CLType node,temp;
        if((node=new CLType()==null){
        System.out.println("申请内存失败");
        return null;            //申请内存失败
    }
    
          else{
                node.nodeData=nodeData;
                node.nextNode=null;
                if(head==null)
                 {
                  head =node;
                  return head;
                  }
                 temp=head;
                 while(temp!=null){
                 temp=temp.nextNode;               //查找链表的末尾
                 
                 }
                 temp.nextNode=node;
                 return head;
    }
    
    }                                                                                    
    复制代码

    三、插入头结点

    1. 分配内存空间
    2. 使新增节点指向head
    3. 使head指向新增节点
    复制代码
    CLType CLAddFirst(DATA nodeData,CLType head){
          CLType node;
          if((node=new CLType())==null)
             {
                 return null;
             }
    else{ node.nodeData=nodeData; node.nextNode=head; head=node; return head; } }
    复制代码

    四、查找节点

    复制代码
    CLType CLFindNode(CLType head,String key)
    {
             CLType temp;
             temp =head;
             while(temp!=null){
              if(temp.nodaData==key)
               return temp;
               temp=temp.nextNode;
             }
              return null;
    }
    复制代码

    五、插入节点

    复制代码
    CLType CLInsentNode(CLType head,String findkey,DATA nodeData)
    {
          CLtype node,nodetemp;
          if((node=new CLType())==null)
          {
                  System.out.println("申请内存失败!");
                  return null;
          }
           node.nodaData=nodeData;
           nodetemp=(head,findkey);     //查找相应节点
           if(nodetemp!=null)                 //若找到节点
           {
                    node.nextNode=nodetemp.nextNode;
                    nodetemp.nextNode=node;
            }
            else
            {
                    System.out.println("未找到正确的插入位置。");
            }
            return head;
    }
    复制代码

    六、删除节点

    复制代码
    int CLDeleteNode(CLType head; String key)
    {
         CKtype node,temp;
          node = head;
          temp = head;
          while(temp!=null)
          {
                if(temp.nodeData.key.compareTo(key)==0)
                {
                       node.nextNode=temp.nextNode;
                       temp=null;
                       return 1;
                 }
               elas
                {    
                       note=temp;
                       temp=temp.nextNode;
                 }     
          }
           return 0;
    }    
    复制代码

    七、计算链表长度

    复制代码
    int CLLength(CLType head )
    {
         CLType temp;
         temp = head;
         int length=0;
         while(temp!=null)
         {
                 length++;
                 temp=temp.nextNode;
          }
          return length;
    }
    复制代码

    八、显示全部节点

    复制代码
    void CLAllNode(CLType head)
    {
           CLType temp;
           DATA  nodeData;
           temp = head;
           System.out.println("当前链表共同拥有"+CLLength(head)+"个节点。

    链表数据例如以下:"); while(temp!=null) { nodeData=temp.nodeData; System.out.println(""+nodeData.key+nodeData.name+nodeData.age); temp=temp.nextNode; } }

    复制代码
  • 相关阅读:
    Python 字符串处理大全.
    图形化翻译助手
    爬虫详解
    Python 模块.
    定制序列
    Python 的property的实现 .
    Python的魔法方法 .
    通过类的装饰器以及各种单例模式(修复版本)。
    是时候写一下Python装饰器了。
    %E2%80%8C的字符串问题,卡住三个小时。
  • 原文地址:https://www.cnblogs.com/cxchanpin/p/7243480.html
Copyright © 2011-2022 走看看