一、数据准备

 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. google 浏览器的Debug 调试工具使用

    一个写后台的人 有一天要自己找前台页面的错误 于是乎就得会前台debug 于是乎我不会 就在网上找了一些资料看  不就是几个按钮 嘛 有啥难的  上图片 1.Google 浏览器 F12 就可以看到 ...

  2. 一些很有意思的JS现象

    关于JS对象的 . 和 [] []除了属性名可以比 .天马行空以外(比如我们要添加一个为'33-abc'的属性,一定得用[])),还有一个实际操作中的区别 Object.is的作用和两个奇特的现象 还 ...

  3. MySql数据库数据类型及约束介绍

    1,MySql中数据类型介绍 整型及浮点型 数据类型 存储范围 字节 TINYINT 有符号值:-2^到2^7-1 无符号值:0到2^8-1 2 SMALLINT 有符号值:-2^15到2^15-1 ...

  4. EasyUI学习笔记(二)—— Layout

    一.layout页面布局 EasyUI布局容器包括东.西.南.北.中五个区域,其中中心面板是必须的,而东.西.南.北这四个面板是可选的,如果布局里面不需要东.西.南.北这四个面板,那么可以把相应的di ...

  5. liunx 安装 phpstudy

    phpStudy Linux版&Win版同步上线 支持Apache/Nginx/Tengine/Lighttpd/IIS7/8/6 phpStudy for Linux 支持Apache/Ng ...

  6. PIE SDK打开网络地图数据

    1. 数据介绍 网络地图数据是在线地图服务发布出来的数据,其支持数据的网络查看和传输,极大的促进了GIS的发展. 目前PIE SDK支持百度地图.谷歌地图.高德地图.天地图.Bing地图.ArcGIS ...

  7. 设置Yii2发生错误返回json

    如果指示指定一个函数那么可以使用: \Yii::$app->response->format = \yii\web\Response::FORMAT_JSON; 如果想整个应用都返回JSO ...

  8. 移动端刷新组件XtnScroll--Angular4实现

    刷新组件 - 主要是学习一下Angular4所有花了我一天时间,写了这个刷新组件. 以项目开发当中,特别是手机移动端开发的时候,经常要用到就是上拉加载下一面,下拉刷新获取最新数据的功能. 在网也有很多 ...

  9. IBM Rational Appscan: Part 2 ---reference

    http://resources.infosecinstitute.com/appscan-part-2/ By Rohit T|August 16th, 2012 ----------------- ...

  10. 【卷土重来之C#学习笔记】(三) 类型 存储和变量

    .c#程序是一组类型声明 ※C#程序或DLL的源代码是一组一种或多种类型声明 ※对于可执行程序,类型声明必须有一个包含Main方法类 ※命名空间是一种把相关的类型声明分组并命名的方法.既然程序是一组相 ...