java单链表 提供增删改查_java实现单链表增删改查的实例代码详解

package 数据结构算法.链表;

/*

*定义节点

* 链表由节点构成

*/

public class node {

private e e; //数据data

private node next; //指向下一个节点

public node() {

}

public node(e e) {

this.e = e;

}

public node getnext() {

return next;

}

public void setnext(node next) {

this.next = next;

}

public e gete() {

return e;

}

public void sete(e e) {

this.e = e;

}

}

package 数据结构算法.链表;

/*

* 定义实现类mylinkedlist

* 实现链表的基本功能:增删改查

*/

public class mylinkedlist {

//声明头节点尾节点

private node head;

private node last;

//链表的大小

private int size;

private int modcount; //计算被修改的次数

public mylinkedlist() {

head = new node();//实例化头结点

last = head;

}

/*

*返回单链表中存储的元素总数

*/

public int size() {

return size;

}

/*

*获取指定索引位置的节点对象

*/

public node get(int index) {

if (index < 0 || index > size - 1)

return null;

node node = head.getnext();//将头结点的下一个节点赋给node

for (int i = 0; i < index; i++) {

node = node.getnext();//获取node的下一个节点

}

return node;

}

/*

*获取指定索引位置的数据

*/

public e getvalue(int index) {

if (index < 0 || index > size - 1)

return null;

node node = get(index);

return node.gete();

}

/*

*增加元素

*/

public void add(e e) {

node node = new node(e); //以e实例化一个节点

last.setnext(node);//往尾节点后追加节点

last = node;//该节点设为最后一个节点

size++;

modcount++;

}

/*

*指定位置插入元素,返回插入的节点数据

*/

public e add(int index, e e) {

if (index < 0 || index > size - 1)

return null;

node node = new node(e); //实例化一个节点

//找到插入的原节点

node oldnode = get(index);

if (index == 0) {//当索引为0时

head.setnext(node);

} else {

//找到插入节点的上一个

node bnode = get(index - 1);

bnode.setnext(node);

}

node.setnext(oldnode);

size++;

modcount++;

return oldnode.gete();

}

/*

*删除指定的节点e,并返回删除节点的数据

*/

public e delete(int index) {

if (index < 0 || index > size - 1)

return null;

if (index == 0) {//当索引为1,令头结点的下一个节点为头结点

node node = head.getnext();

head.setnext(node.getnext());

}

//获取要删除节点的前一个节点

node bnode = get(index - 1);

//获取要删除的节点

node node = bnode.getnext();

//获取要删除节点的下一个节点

node nnode = node.getnext();

//删除该节点

bnode.setnext(nnode);

//清除node的下一个节点

node.setnext(null);

size--;

modcount++;

return node.gete();//返回节点中的数据域

}

/*

*修改指定位置的数据域并返回修改后的数据

*/

public e set(int index, e e) {

if (index < 0 || index > size - 1)

return null;

//获取指定位置的原节点

node node = get(index);

node.sete(e);

modcount++;

return node.gete();

}

}

package 数据结构算法.链表;

/*

*定义测试类

*/

public class mylinkedlisttest {

public static void main(string[] args) {

mylinkedlist list = new mylinkedlist<>();

//测试add

list.add("one");

list.add("two");

list.add("three");

list.add("four");

list.add(0,"newone");

list.add(1,"newtwo");

for (int i = 0; i < list.size(); i++) {

system.out.print(list.getvalue(i)+" ");

}

//测试set

system.out.println();

list.set(0, "111");

list.set(1, "222");

system.out.println(list.getvalue(0) + " " + list.getvalue(1));

//测试delete

system.out.println();

list.delete(1);

for (int i = 0; i < list.size(); i++) {

system.out.print(list.getvalue(i)+" ");

}

}

}

运行结果如下:

57c72117a1a4089e6ad482215f6b45e1.png

以上就是全部知识点内容,感谢大家对萬仟网的支持。

希望与广大网友互动??

点此进行留言吧!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/347743.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java接口安全怎么处理_Restful API 接口安全性设计

1.API接口设计规范2.安全性设计a.白名单限制仅接受特定系统的请求响应&#xff0c;调用方的IP地址需要在本系统中报备&#xff0c;否则无法调用b.合法身份合法性验证Basic Authentication :这种方式是直接将用户名和密码放到Header中&#xff0c;使用 Authorization: Basic Zm9…

使用Spring开发Java RESTful Web服务的7个理由

REST现在已成为开发Web服务的标准方法&#xff0c;涉及Java时&#xff0c;可以使用许多框架和库&#xff0c;例如JAX-RS&#xff0c;Restlet&#xff0c;Jersey&#xff0c;RESTEasy&#xff0c;Apache CFX等&#xff0c;但是我鼓励Java开发人员使用Spring框架来开发Java。开发…

java文件和xml文件_用Java分割大型XML文件

java文件和xml文件上周&#xff0c;我被要求用Java编写一些东西&#xff0c;该东西能够将一个30GB的XML文件拆分为可配置文件大小的较小部分。 文件的使用者将是一个中间件应用程序&#xff0c;该应用程序在XML的大尺寸方面存在问题。 在幕后&#xff0c;它使用某种DOM解析技术…

oracle java 并发_【转】JAVA并发教程(ORACLE官网资料)

本文是Oracle官方的Java并发相关的教程&#xff0c;感谢并发编程网的翻译和投递。计算机的使用者一直以为他们的计算机可以同时做很多事情。他们认为当其他的应用程序在下载文件&#xff0c;管理打印队列或者缓冲音频的时候他们可以继续在文字处理程序上工作。甚至对于单个应用…

部署Spring Boot Angular App(Maven和Tomcat)的4种方法

在上一篇有关Spring Boot angular 5的文章中 &#xff0c;我们使用Spring Boot angular 5实现了一个完整的堆栈端到端Web应用程序。在本文中&#xff0c;我们将讨论在tomcat上部署Spring Boot和Angle App的不同方法。 我们将创建一个具有后端&#xff08;服务器&#xff09;和前…

计算机二级web题目(8.3)--简单应用题2

前些天发现了一个巨牛的人工智能学习电子书&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;无广告&#xff0c;忍不住分享一下给大家。&#xff08;点击跳转人工智能学习资料&#xff09; 1.在考生文件夹下的Web3目录中&#xff0c;存有3.htm文件&#xff0c;该文件不完…

计算机二级web题目(8.4)--综合应用题2

前些天发现了一个巨牛的人工智能学习电子书&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;无广告&#xff0c;忍不住分享一下给大家。&#xff08;点击跳转人工智能学习资料&#xff09; 1.在考生文件夹下的Web5目录中&#xff0c;存有5.htm文件&#xff0c;该文件不完…

(3.5)HarmonyOS鸿蒙上下左右方向滑动

需要获取按下时候的坐标和松开时候的坐标&#xff0c;并将两者进行比较。 ①MainAbilitySlice.java文件 可以根据使用情况做修改代码中判断处的限制偏差范围。 package com.example.yeman.slice;import com.example.yeman.ResourceTable; import ohos.aafwk.ability.Ability…

sql 注射_基本注射/资格赛,范围

sql 注射这是上周解决的DI / CDI基础知识的延续-在本文中&#xff0c;我将讨论基础注入&#xff0c;限定词和范围。 在上一个主题中&#xff0c;我们提供了有关DI / CDI概念的大量信息&#xff0c;我们还讨论了如何使用注释加载这些bean或类-这构成了对象的组成并创建了关于如…

计算机二级web题目(9.1)--综合选择题3

前些天发现了一个巨牛的人工智能学习电子书&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;无广告&#xff0c;忍不住分享一下给大家。&#xff08;点击跳转人工智能学习资料&#xff09; 1下列叙述中正确的是(D)。 A、栈是"先进先出"的线性表 B、队列是"…

java小程序 2048_微信小程序之游戏2048

主要用来锻炼逻辑思维能力image.png可以选模式image.png这里面主要解决的问题是&#xff1a;1.判断滑动方向//在滑动块级绑定滑动开始和滑动结束的方法很原始的方法&#xff0c;startFn时保存开始的(x,y),endFn时保存结束的(x1,y2),根据这四个参数 判断方向&#xff0c;算法在方…

Java面向对象(8)--继承性

多个类中存在相同属性和行为时&#xff0c;可以将这些内容抽取到单独一个类中&#xff0c;那么多个类无需再定义这些相同的属性和行为&#xff0c;只要继承那个类即可。 这里的多个类称为子类(派生类)&#xff0c;单独的这个类称为父类(基类或超类)。 语法格式&#xff1a;cla…

aimesh node重启_华硕 RT-AC86U 和 网件 R7000 组 AiMesh 成功

家里之前买了一个 R7000 主路由器&#xff0c;后来我嫌我房间里的信号有点烂( 5G 信号只能 2 格&#xff0c;网速比 2.4G 还慢)&#xff0c;所以就入手了一个华硕 RT-AC86U 作为主路由器&#xff0c;R7000 则作为 AP。在买的时候就想组 AiMesh&#xff0c;但是因为种种事情耽搁…

maven ant_如何在Maven中运行Ant目标?

maven antmaven-antrun-plugin允许我们在各种maven构建阶段中运行ant目标。 我将专门为具有开发环境的开发人员解释maven-antrun-plugin的非常实际的用法。 通常&#xff0c;使用maven build&#xff0c;您会将项目捆绑到war文件或ear文件中。 您可以使用maven-antrun-plugin…

java中打开文件显示_在默认文件资源管理器中打开文件,并使用JavaFX或普通Java突出显示它...

我想做标题所说的.部分解决方案例如,在Windows中,您可以使用以下代码在默认资源管理器中打开文件并突出显示它.(虽然它需要修改包含空格的文件)&#xff1a;/*** Opens the file with the System default file explorer.** param path the path*/public static void openFileLo…

win10下vscode配置c语言环境

1、C编译器下载 C编译器&#xff08;MinGW-W64 GCC&#xff09;的下载&#xff1a;点击官方下载 或者点击网盘下载提取码为karj 下载完成后解压&#xff0c;将解压后的文件夹放到合适的位置&#xff0c;点开其bin子文件夹&#xff0c;复制路径。 2、win10下环境变量配置 ①…

Java面向对象(11)--多态性

父类 变量名 new 子类&#xff08;&#xff09;&#xff1b;对象的多态性&#xff1a;父类的引用指向子类的对象 Java引用变量有两个类型&#xff1a;编译时类型和运行时类型。编译时类型由声明 该变量时使用的类型决定&#xff0c;运行时类型由实际赋给该变量的对象决定。简…

Java面向对象(12)--对象类型转换 (Casting )

基本数据类型的Casting&#xff1a; ①自动类型转换&#xff1a;小的数据类型可以自动转换成大的数据类型 如long g20; double d12.0f ②强制类型转换&#xff1a;可以把大的数据类型强制转换(casting)成小的数据类型 如 float f(float)12.0; int a(int)1200L Java对象的强制…

知识蒸馏 循环蒸馏_Java垃圾收集蒸馏

知识蒸馏 循环蒸馏串行&#xff0c;并行&#xff0c;并发&#xff0c;CMS&#xff0c;G1&#xff0c;Young Gen&#xff0c;New Gen&#xff0c;Old Gen&#xff0c;Perm Gen&#xff0c;Eden&#xff0c;Tenured&#xff0c;Survivor Spaces&#xff0c;Safepoints和数百个JVM…

Javascript中的AES加密和Java中的解密

AES代表高级加密系统&#xff0c;它是一种对称加密算法&#xff0c;很多时候我们需要在客户端加密一些纯文本&#xff08;例如密码&#xff09;并将其发送到服务器&#xff0c;然后由服务器解密以进行进一步处理.AES加密和解密更加容易在相同的平台&#xff08;例如Android客户…