博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java实现链表结构的具体代码
阅读量:7143 次
发布时间:2019-06-29

本文共 2914 字,大约阅读时间需要 9 分钟。

一、数据准备

 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; } }

转载地址:http://tmgrl.baihongyu.com/

你可能感兴趣的文章
将excel中的数据转为json格式
查看>>
Poedu_项目2_Lesson005 课堂笔记
查看>>
字典操作
查看>>
实验2
查看>>
使用source创建一个新项目(将本地项目文件和github远程库链接)
查看>>
运行问题,如何修改APACHE的监听端口和密码
查看>>
Solaris服务管理
查看>>
Linux process state codes
查看>>
tyvj P1175 机器人
查看>>
1341 与3和5无关的数
查看>>
EasyReport报表工具
查看>>
【Tomcat】tomcat内存配置登记册
查看>>
HDOJ 2101 A + B Problem Too
查看>>
微软职位内部推荐-Senior Speech TTS
查看>>
怎么用几何画板坐标绘制点
查看>>
结构体对齐和补齐
查看>>
【DOM编程艺术】javascript:伪协议和onclick 弹出窗口(一)
查看>>
【nodeJs】node.js的安装
查看>>
Information Builders发布针对移动终端的闭环商业智能解决方案
查看>>
linux 学习笔记 管道 pipe ls cp mv
查看>>