一、数据准备

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

java实现链表结构详细代码的更多相关文章

  1. Java实现链表结构的具体代码

    一.数据准备 1. 定义节点 2.   定义链表 1.数据部分 2.节点部分 class DATA //数据节点类型 { String key; String name; int age; } cla ...

  2. (原创)用Java实现链表结构对象:单向无环链表

    转载请注明本文出处:http://www.cnblogs.com/Starshot/p/6918569.html 链表的结构是由一个一个节点组成的,所谓链,就是每个节点的头尾连在一起.而单向链表就是: ...

  3. Java单链表反转 详细过程

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/guyuealian/article/details/51119499 Java单链表反转 Java实 ...

  4. JAVA基础——链表结构之单链表

    链表:一种数据存储结构.学链表首先要搞懂数组,按朋友的话说,数组和链表的关系就相当于QQ2008和QQ2009. 除非要通过索引频繁访问各个数据,不然大多数情况下都可以用链表代替数组. 链表部分主要要 ...

  5. java连接oracle数据库详细代码

    详细代码: import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;imp ...

  6. java实现链表结构

    1. 定义节点node public class Node<T> { private Node<T> pre; private Node<T> next; priv ...

  7. JAVA基础——链表结构之双端链表

    双端链表:双端链表与传统链表非常相似.只是新增了一个属性-即对最后一个链结点的引用 如上图所示:由于有着对最后一个链结点的直接引用.所以双端链表比传统链表在某些方面要方便.比如在尾部插入一个链结点.双 ...

  8. Spark+ECLIPSE+JAVA+MAVEN windows开发环境搭建及入门实例【附详细代码】

    http://blog.csdn.net/xiefu5hh/article/details/51707529 Spark+ECLIPSE+JAVA+MAVEN windows开发环境搭建及入门实例[附 ...

  9. 基本算法思想Java实现的详细代码

    基本算法思想Java实现的详细代码 算法是一个程序的灵魂,一个好的算法往往可以化繁为简,高效的求解问题.在程序设计中算法是独立于语言的,无论使用哪一种语言都可以使用这些算法,本文笔者将以Java语言为 ...

随机推荐

  1. 使用octave符号运算求解不定积分、微分方程等(兼容matlab)

    1.求解1/(1+cos(x))^2的不定积分. 在和学生讨论一道物理竞赛题的时候,出现了这个函数的积分求解需求.查积分表也可写出答案.但是可以使用octave的符号运算工具箱来做. syms x; ...

  2. 鼠标拖动div,div跟随鼠标移动效果

    <div id="boxDiv" style='width:20px;height:20px;position:absolute;background:red;'>   ...

  3. HDU - 1403 后缀数组初步

    题意:求两个串的最长公共子串 两个串连接起来然后求高度数组 注意两个sa值必须分别在不同一侧 本题是用来测试模板的,回想起青岛那次翻车感觉很糟糕 #include<iostream> #i ...

  4. JS window,onload 与 $().read()

    JS:window.onload的使用介绍 .在body标签里面 .在JS语句调用 .同时调用多个函数 .JS调用多个函数 .自定义的函数多次调用 jquery $(document).ready() ...

  5. [转] JAVA从本机获取IP地址

    [From] https://www.cnblogs.com/xiaoBlog2016/p/7076230.html 论述: 此篇博客是在工作的时候,需要获得当前网络下面正确的ip地址,在网上查阅很多 ...

  6. PIE软件介绍

    1. 产品概述 PIE(Pixel Information Expert)软件是北京航天宏图信息技术股份有限公司自主研发的新一代遥感影像处理软件,北京航天宏图信息技术股份有限公司是国内知名的卫星应用服 ...

  7. 采用MQTT协议实现android消息推送(1)MQTT 协议简介

    1.资料 mqtt官网 http://mqtt.org/ 服务端程序列表 https://github.com/mqtt/mqtt.github.io/wiki/servers 客户端库列表 http ...

  8. API 接口设计工具 --Swagger

      swagger-editor,无法启动GUI软件,在线版的FQ也打不开   null

  9. Missing artifact com.oracle:ojdbc6:jar:11.2.0.1.0问题解决 ojdbc包pom.xml出错

    <!-- 添加oracle jdbc driver --> <dependency> <groupId>com.oracle</groupId> < ...

  10. oracle 备份恢复篇(五)---rman 剩下控制文件和spfile

    一,环境准备 ❤ 拥有全量备份文件