Java实现链表结构的具体代码
一、数据准备
1. 定义节点
2. 定义链表
1.数据部分
2.节点部分
![](/assets/blank.gif)
class DATA //数据节点类型 {String key;String name;int age; } class CLType //定义链表结构 { DATA nodeData =new DATA(); CLType nextNode; }
![](/assets/blank.gif)
二、追加节点
- 首先分配内存。保存新增节点
- 从头应用head開始追个检查,直到找到最后结点
- 将表尾结点地址部分设置为新增节点的地址
- 将新增节点的地址部分置为null
![](/assets/blank.gif)
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; }}
![](/assets/blank.gif)
三、插入头结点
- 分配内存空间
- 使新增节点指向head
- 使head指向新增节点
![](/assets/blank.gif)
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;} }
![](/assets/blank.gif)
四、查找节点
![](/assets/blank.gif)
CLType CLFindNode(CLType head,String key) {CLType temp;temp =head;while(temp!=null){if(temp.nodaData==key)return temp;temp=temp.nextNode;}return null; }
![](/assets/blank.gif)
五、插入节点
![](/assets/blank.gif)
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; }
![](/assets/blank.gif)
六、删除节点
![](/assets/blank.gif)
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; }
![](/assets/blank.gif)
七、计算链表长度
![](/assets/blank.gif)
int CLLength(CLType head ) {CLType temp;temp = head;int length=0;while(temp!=null){length++;temp=temp.nextNode;}return length; }
![](/assets/blank.gif)
八、显示全部节点
![](/assets/blank.gif)
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; } }
![](/assets/blank.gif)
转载于:https://www.cnblogs.com/cxchanpin/p/7243480.html
Java实现链表结构的具体代码相关推荐
- java链表对象_用Java实现链表结构对象:单向无环链表
转载请注明本文出处:http://www.cnblogs.com/Starshot/p/6918569.html 链表的结构是由一个一个节点组成的,所谓链,就是每个节点的头尾连在一起.而单向链表就是: ...
- 浅谈:数据结构之双链表结构与代码模拟双链表的实现
双链表 本文是观看尚硅谷韩老师数据结构与算法根据老师讲解自己做的笔记,部分信息收集网络 与单链表区别 逻辑上没有区别.他们均是完成线性表的内容.主要的区别是结构上的构造有所区别. 对于单链表: 对于一 ...
- 怎么使用java初始化链表_Java 链表(LinkNode)的简单操作:初始化,遍历,插入,删除等...
由于java中没有结构体,所以用一个类来定义链表,代码如下 主要包括一个data,还有一个指向后面一个节点的next 重写了toString函数,返回你想要的数据 定义链表的类: package Li ...
- 链表数据结构图解 和 代码实现
项目中经常会用到LinkedList集合来存储数据,打算写一篇LinkedList的源码解析,而LinkedList是基于链表结构存储数据的,这篇博文将解析链表数据结构,包括单向链表和双向链表: 1: ...
- Java单链表反转 详细过程
Java单链表反转 Java实现单链表翻转 [尊重原创,转载请注明出处]http://blog.csdn.net/guyuealian/article/details/51119499 (一) ...
- java查找链表中间元素_如何通过Java单次查找链表的中间元素
java查找链表中间元素 您如何一次找到LinkedList的中间元素是一个编程问题,在电话采访中经常问Java和非Java程序员. 这个问题类似于检查回文或 计算阶乘 ,有时Interviewer还 ...
- 牛客网 链表结构 算法相关内容
链表结构 单链表的节点结构 由以下结构的节点依次连接起来所形成的链叫单链表结构 Clas Node<V>{ V value; Node next; } 双链表的节点结构 由以下结构的节点 ...
- java 查找链表中间元素_java查找链表中间元素_如何通过Java单次查找链表的中间元素...
java查找链表中间元素 您如何一次找到LinkedList的中间元素是一个编程问题,在电话采访中经常问Java和非Java程序员. 这个问题类似于检查回文或 计算阶乘 ,有时Interviewer还 ...
- 【Java实现链表操作】 万字肝爆 !链表的图文解析(包含链表OJ练习解析)
目录指引: 前言: 链表的概念及结构 单链表的实现 一.实现链表的函数操作 1.实现链表的打印函数 2.实现得到单链表的长度函数 3.查找是否包含关键字key是否在单链表当中 4.链表头插法 5.链表 ...
最新文章
- python培训深圳-深圳Python培训机构排名
- Struts 2常用的Ajax标签
- C语言梳排序Comb sort算法(附完整源码)
- python基础:zip和dict详解
- 如何提高UDP的可靠性
- DIY协同办公平台(C/S)系列4之通讯录篇
- Dubbo思维导图知识点整理
- C 语言的数据类型宽度扩展
- Leetcode-链表
- Axios 请求配置参数详解
- EventBus (一) 使用详解——初步使用EventBus
- Scrapy入门程序点评
- 使用paddlepaddle 进行人脸识别
- Alexa世界排名原理+作弊源码,为网站赢得好排名
- ue4 和 c4d 区别 以及日常理解
- pythonallowpos_基于Python的诗和远方
- 大学计算机专业的同学是怎么学习的?
- Conflux CTO伍鸣、研究总监杨光分别出席CoinDesk发布会及YOUChain大会
- android dynamic features 项目笔记
- Ubuntu20.04下没有亮度调节且找不到/sys/class/backlight文件夹(backlight里为空)的解决办法