一、数据准备

 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. POJ1064 Cable master 【二分找最大值】

    题目:题目太长了! https://vjudge.net/problem/POJ-1064 题意分析:给了你N根长度为小数形式的棍子,再给出了你需要分的棍子的数量K,但要求你这K根棍子的长度必须是一样 ...

  2. C# Win7下隐藏手势提示

    点击这里是原版答案 Stylus.IsFlicksEnabled="False" 手势是什么样子的

  3. 使用 .NET Core CLI 创建 .NET Core 全局工具

    https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=2&ch=&tn=baiduhome_pg& ...

  4. python 获取子目录下的所有文件的路径

    import os pathss=[] for root, dirs, files in os.walk(tarpath): path = [os.path.join(root, name) for ...

  5. oracle 控制文件损坏处理

    一, 故障模拟 控制文件损坏 发现关闭不了 强制关闭   故障恢复   发现已经执行到mont阶段,因为这个不依靠控制文件 进入整段日志 cd /u01/app/oracle/diag/rdbms/o ...

  6. java连接redis使用jedis带密码

    一.引入jedis的Maven配置文件 <!-- redis连接客户端jedis --> <dependency> <groupId>redis.clients&l ...

  7. 017-Servlet抽取时的BaseServlet模板代码

    package www.test.web.servlet; import java.io.IOException; import java.lang.reflect.Method; import ja ...

  8. Java反射机制一 概念和简单的使用方法。

    一 概念 java反射机制属于 java动态性之一  ,指的是可以运行时加载,探知,使用编译期间完全未知的类,程序在运行状态中,可以动态的加载一个只有, 名称的类,对于任意一个已加载的类,都能够知道这 ...

  9. npm安装gulp-sass失败处理办法

    最近在做一个基于gulp的前端自动化的项目,在github上拉取代码后,按照正常的流程,首先我们要 npm  install ,在安装的过程中,一直提示我gulp-sass 安装失败,我用尽了好多办法 ...

  10. (二)HTML中的部分标签

    HTML作为一种超文本标记语言,其中用到了大量的标签,昨天主要看了HTML中的图像标签和表格标签. (一)图像标签 <img> <img src="url"/&g ...