java实现单链表的增删功能
JAVA 实现单链表的增删功能
package linked;
class LinkedTable{
}
public class LinkedTableTest {
public static void main(String[] args)
{
//构造单链表
Node node1=new Node("name1");
Node node2=new Node("name2");
Node node3=new Node("name3");
Node node4=new Node("name4");
Node node5=new Node("name5");
node1.setNextNode(node2);
node2.setNextNode(node3);
node3.setNextNode(node4);
node4.setNextNode(node5);
System.out.println("*******初始链表*******");
//循环遍历单链表
outLinked(node1);
System.out.println();
//插入节点在node2的后面
addNode(node2);
System.out.println("*****插入node2.5后的链表*****");
//循环遍历单链表
outLinked(node1);
System.out.println();
//删除节点
node2.setNextNode(node3);
System.out.println("*******删除node2.5*******");
//循环遍历单链表
outLinked(node1);
System.out.println();
}
public static void outLinked(Node node1){
Node node= new Node();
node.setNextNode(node1);
do
{
node=node.getNextNode();
System.out.print(node.getName()+"----");
}while(node.getNextNode()!=null);
}
public static void addNode(Node preNode)
{
Node node_add = new Node("name2.5");
node_add.setNextNode(preNode.getNextNode());
preNode.setNextNode(node_add);
}
}
class Node {
private String name;
private Node nextNode;
public void setName(String name)
{
this.name=name;
}
public void setNextNode(Node nextNode)
{
this.nextNode=nextNode;
}
public String getName()
{
return this.name;
}
public Node getNextNode()
{
return this.nextNode;
}
public Node(String name)
{
this.name=name;
this.nextNode=null;
}
public Node( )
{
}
}
单链表添加节点:
public static void addNode(Node preNode)
{
Node node_add = new Node("name2.5");
node_add.setNextNode(preNode.getNextNode());
preNode.setNextNode(node_add);
}

S1:创建新节点(node_add)
S2:新节点的next指针指向要插入位置上一个节点(node2)的指针指向的节点
【node2.5----->node2.nextnode()】
S3:将要插入位置上一个节点(node2)的指针指向新的节点
【node2------->node2.5】
注意:
S2与S3的顺序不可发生改变。
如果调换顺序:
【node2------->node2.5】这一步执行完后,node2的指针就会指向node2.5【node2.nextnode()=node2.5】,node3没有任何指针指向他
【node2.5----->node2.nextnode()】在执行这一步的时候,node2.5的指针将指向自己
java实现单链表的增删功能的更多相关文章
- Java实现单链表的增删查改及逆置打印
//所提供的接口 LinkList.java package Struct; public interface LinkList {//判断链表为空public boolean linkListIsE ...
- JAVA数据结构——单链表
链表:一. 顺序存储结构虽然是一种很有用的存储结构,但是他有如下几点局限性:1. 因为创造线性表的时候已经固定了空间,所以当需要扩充空间时,就需要重新创建一个地址连续的更大的存储空间.并把原有的数据元 ...
- Java实现单链表的各种操作
Java实现单链表的各种操作 主要内容:1.单链表的基本操作 2.删除重复数据 3.找到倒数第k个元素 4.实现链表的反转 5.从尾到头输出链表 6.找到中间节点 7.检测链表是否有环 8.在 ...
- 使用java实现单链表(转载自:https://www.cnblogs.com/zhongyimeng/p/9945332.html)
使用java实现单链表----(java中的引用就是指针)转载自:https://www.cnblogs.com/zhongyimeng/p/9945332.html ? 1 2 3 4 5 6 7 ...
- Java带头节点单链表的增删合并以及是否有环
带头节点单链表 1.优势: 1)当链表为空时,指针指向头结点,不会发生null指针异常 2)方便特殊操作(删除第一个有效节点或者插入一个节点在表头) 3)单链表加上头结点之后,无论单链表是否为空,头指 ...
- Java数据结构--单链表
#java学习经验总结------单链表的建立与结点的增删 在该链表结点有data数据,并且还有cpu,分给cpu随机的时间片,根据时间片大小进行结点data的排序 链表结点的建立 class Lin ...
- java实现单链表的增删改以及排序
使用java代码模拟单链表的增删改以及排序功能 代码如下: package com.seizedays.linked_list; public class SingleLinkedListDemo { ...
- 用Java实现单链表的基本操作
笔试题中经常遇到单链表的考题,下面用java总结一下单链表的基本操作,包括添加删除节点,以及链表转置. package mars; //单链表添加,删除节点 public class ListNode ...
- java实现单链表常见操作
一.概述: 本文主要总结单链表常见操作的实现,包括链表结点添加.删除:链表正向遍历和反向遍历.链表排序.判断链表是否有环.是否相交.获取某一结点等. 二.概念: 链表: 一种重要的数据结构,HashM ...
随机推荐
- TCP协议的三次握手和四次分手
HTTP连接 HTTP协议即超文本传送协议(Hypertext Transfer Protocol ),是Web联网的基础,也是手机联网常用的协议之一,HTTP协议是建立在TCP协议之上的一种应用. ...
- Android开发学习必备的java知识
Android开发学习必备的java知识本讲内容:对象.标识符.关键字.变量.常量.字面值.基本数据类型.整数.浮点数.布尔型.字符型.赋值.注释 Java作为一门语言,必然有他的语法规则.学习编程语 ...
- SyntaxError: Missing parentheses in call to 'print'
C:\Users\konglb>python Python 3.6.3 (v3.6.3:2c5fed8, Oct 3 2017, 17:26:49) [MSC v.1900 32 bit (I ...
- jlink烧写Nor Flash时出错正确解决方法汇总:PC of target system has unexpected value after programming
成都国嵌的课程:国嵌体验入门班-2-1(开发板系统安装-Jlink方式).rar毒害了不少人,那种直接烧写nor flash,不进行任何配置的方法,能够成功纯属偶然,他自己在视频中烧写时也出现了两次错 ...
- Action调用Service
Java Web项目,写到Action的时候,往往会要引入Service,这个是一个常见的操作. 但是,我自认为引入Service需要给它get和set方法,并且这个习惯已经沿用到现在.然而,自从参与 ...
- hql查询实例
1.设计思路 (1)在页面中设计一个下拉框,数据取自数据库: (2)查询是用hql查询. 2.设计实例 (1)Java模型层 public class Tree { private String id ...
- Java Web项目(Extjs)报错五
1. Java Web项目(Extjs)报错五 具体报错如下: usage: java org.apache.catalina.startup.Catalina [ -config {pathname ...
- Java获取当前的日期和时间
Java获取当前的日期和时间 1.具体实现方法如下 /** * @Title:DateTime.java * @Package:com.you.model * @Description:获取当前的日期 ...
- 空间主页播放任意FLV格式视频方法
把文件上传到QQ网络硬盘 打开 硬盘 的 管理 选项 然后它会打开QQ邮箱的文件中转站 找到你要的视频文件 点击下载它 这里建议你使用搜狗浏览器打开网页 来到下载按钮点击下载,在弹出的对话框中选择 ...
- 【LightOJ1282】Leading and Trailing(数论)
[LightOJ1282]Leading and Trailing(数论) 题面 Vjudge 给定两个数n,k 求n^k的前三位和最后三位 题解 这题..真的就是搞笑的 第二问,直接输出快速幂\(m ...