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 ...
随机推荐
- 一个简单的Springmvc应用开发例子
SpringMVC应用的配置步骤: 1,将所有的jar包导入到lib文件夹下: jar在spring框架包-->libs-->所有的 ...
- linux 运维 nginx服务器
nginx(web服务器) nginx是一个高性能的http和反向代理服务器,同时也是一个imap/pop3/smtp 代理服务器比apache简单官网:http://nginx.org nginx配 ...
- 判断ios或者android
<script type="text/javascript"> $(function () { // android和iso下载链接 var u = navigator ...
- 如何编译linux第一个模块 hellomod.ko
Linux下的驱动程序也没有听上去的那么难实现,我们可以看一下helloworld这个例子就完全可以了解它的编写的方式! 我们还是先看一个这个例子,helloworld 1. [代码]hellowor ...
- thinkphp中使用phpexcel读取所有的行记录
ThinkPHP3.2使用phpexcle 将phpexcel放到Think\Org\PHPExcel中 public function index() { import('Org.PHPExcel. ...
- iframe父页面获取子页面的参数
1.父页面中的iframe <iframe name="parentPage"></iframe> 2.子页面中元素的属性 <input type=& ...
- JSP常见的三个编译指令
JSP常见的三个编译指令 1.page指令 是针对当前页面的指令 2.include指令 用于指定包含另一个页面 3.taglib指令 用于定义和访问自定义标签
- Http请求封装基类HttpHelper.cs
HttpHelper请求封装基类,支持get请求和POS请求http接口交互,为后面接口交互做准备. 1.HttpHelper帮助基类 using System; using System.Colle ...
- 利用GDI+在Winfrom绘制验证码
string yzm: private void yangzhengma() { Bitmap bt = new Bitmap(70,22);//创建位图对象 Graphics gs = Graphi ...
- freemarker自定义标签(二十一)
一,讲解一 1.自定义标签说明 宏变量存储模板片段可以被用作自定义指令macro 2.示例说明 <html> <head> <meta http-equiv=" ...