Java数据结构之《链式线性表的插入与删除》问题

一、前言:

  这是怀化学院的:Java数据结构中的一道难度中等偏下的一道编程题(此方法为博主自己研究,问题基本解决,若有bug欢迎下方评论提出意见,我会第一时间改进代码,谢谢!) 后面其他编程题只要我写完,并成功实现,会陆续更新,记得三连哈哈! 所有答案供参考,不是标准答案,是博主自己研究的写法。

二、题目要求如下: 

(第 8 题) 链式线性表的插入与删除(难度系数65)

链式线性表的插入与删除
描述:删除链式线性表指定位置的元素。
输入:第一行为自然数n,表示链式线性表的长度,第二行为n个自然数表示链式线性表各元素值。第三行为指定删除的位置,第四行为插入的位置及元素值(如果位置不对,则不作操作,插入位置应在删除元素后重新计数)。
输出:输出删除与插入元素后的链式线性表的所有元素,元素之间用一个空格隔开。
样例输入:
5
1 2 3 4 5
3
6 7
样例输出:
1 2 4 5

三、代码实现:(基本原理在代码注释中!)

 (1)原理引入:用到了LinkedList类的常用简单方法,因为List接口的实现类——LinkedList,它的内部维护了一个双向循环链表,链表中的每一个元素都使用引用的方式记录他前一个元素和后一个元素。我就不需要去创建一个链表来实现这个题,方便很多。然后因为是双链表,所以它的增删效率很高。

(2)我创建了Linked_List类。因为要用到LinkedList类去操作,所以要记得导包。

package com.fs.link;
/*
*  LinkedList 内部维护了一个双向循环链表
* 这里面的链表中的每一个元素都使用引用的方式记录它的前一个元素和后一个元素,其增删效率非常高
*/
import java.util.LinkedList;
import java.util.Scanner;
public class Linked_List {public static void main(String[] args) {Scanner sc = new Scanner(System.in);LinkedList<Integer> list01=  new LinkedList<>();  //指定这个集合里面的存储的元素:是Integer类型的对象int n= sc.nextInt();for(int i=0;i<n;i++){list01.add(sc.nextInt());  //因为 LinkedList实现了List接口,List接口继承了父接口Collection,里面就有add(Object o)(其中o泛指对象)方法向按顺序集合中添加元素}int index01=sc.nextInt()-1;  //输入的是指定删除的位置,所以实际删的位置的索引要减1//保证要删除的位置在集合中有元素,否则不做操作if(index01>=0){if(index01<list01.size()){  //这里原理也是一样,size()方法返回的集合中元素个数比索引要大1,所以不能等于,否则就是没有这个元素在集合里面list01.remove(index01);//因为 LinkedList实现了List接口,List接口继承了父接口Collection,里面就有remove(Object o)(其中o泛指对象)方法删除集合中指定元素}}int index02=sc.nextInt()-1;int value=sc.nextInt();//注意如果删除成功了一个元素,那么它的调用size()方法时返回的元素个数会少一个,但其实那个索引的位置其实是可以用的,所以添加的时候要注意下标可以等于返回的元素个数if (index02 >= 0) {if (index02 <= list01.size()) {list01.add(index02,value);  //满足条件就插入元素  add(int index,Object element)这个方法是LinkedList类自带的新增方法,在当前集合的索引位置插入元素element}}for(Integer value01 :list01){  //迭代器输出集合中的元素System.out.print(value01+" ");}}
}

四、不同情况的代码运行结果:

<1> 首先测试输入题目中输入样例:

<2> 然后当我们删除条件不满足,插入条件满足时:

<3> 然后当我们删除条件不满足,插入条件满足时(其他情况):

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

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

相关文章

【Linux】基础IO--文件基础知识/文件操作/文件描述符

文章目录 一、文件相关基础知识二、文件操作1.C语言文件操作2.操作系统文件操作2.1 比特位传递选项2.2 文件相关系统调用2.3 文件操作接口的使用 三、文件描述符fd1.什么是文件描述符2.文件描述符的分配规则 一、文件相关基础知识 我们对文件有如下的认识&#xff1a; 1.文件 …

Youtube如何做SEO关键词挖掘

做好Youtube的SEO优化&#xff0c;可以使我们的视频得到更多的展示&#xff0c;更多的点击和观看&#xff0c;就能获得更多的粉丝和流量。一方面通过视频做引流到目标网站进行转化赚钱&#xff0c;另一方面可以通过涨粉接youtube广告赚钱。要做seo最关键的一步在于关键词的挖掘…

什么是网络可视化?网络可视化工具有用吗

网络可视化定义是自我描述的&#xff0c;因为它在单个屏幕上重新创建网络布局&#xff0c;以图形和图表的形式显示有关网络设备、网络指标和数据流的信息&#xff0c;为 IT 运营团队提供一目了然的理解和决策。 网络是复杂的实体&#xff0c;倾向于持续进化&#xff0c;随着业…

pycharm编译报错处理

1.c生成工具下载 https://visualstudio.microsoft.com/visual-cpp-build-tools/ 在这里插入图片描述 pip install pycocotools

【驱动】SPI驱动分析(四)-关键API解析

关键API 设备树 设备树解析 我们以Firefly 的SPI demo 分析下dts中对spi的描述&#xff1a; /* Firefly SPI demo */ &spi1 {spi_demo: spi-demo00{status "okay";compatible "firefly,rk3399-spi";reg <0x00>;spi-max-frequency <48…

Provisioning Profile的重要性

大家好&#xff0c;我是咕噜-凯撒。在iOS和macOS开发中&#xff0c;Provisioning Profile&#xff08;配置文件&#xff09;是一个至关重要的组成部分&#xff0c;它包含开发者证书、App ID和设备信息的文件&#xff0c;不仅用于验证应用程序的身份和权限&#xff0c;还包括了很…

软件测试面试经历和上岸后工作分享

哈喽、因为最近很多小伙伴私信问我的比较多&#xff0c;今天就专门说下&#xff0c;之前为甚转行和怎么选机构就不和大家细说了&#xff0c;之前的文章和视频也都有提到过。 今天主要是和大家说下自己转行后的感受和面试时候的一些经历&#xff0c;希望能给正在转行&#xff0c…

PCB布线为什么不能走直角或锐角-笔记

PCB布线为什么不能走直角或锐角-笔记 摘要一.PCB走线在直角转弯的地方&#xff0c;信号前后部分相互影响这几个理由我们来一一分析一下传输线的直角带来的寄生电容从阻抗的角度来看直角的尖角产生放电或者电磁辐射走线直角的工艺问题 摘要 有一定熟悉画过PCB板的人或者PCB教学…

模拟算法【2】

文章目录 &#x1f958;6. N 字形变换&#x1f372;题目&#x1fad5;算法原理&#x1f963;代码实现 &#x1f957;38. 外观数列&#x1f37f;题目&#x1f9c2;算法原理&#x1f9c8;代码实现 &#x1f958;6. N 字形变换 &#x1f372;题目 题目链接&#xff1a;6. N 字形变…

VUE2+THREE.JS辉光设定和解决辉光导致背景变暗的问题

THREE.JS辉光设定和解决辉光导致背景变暗的问题 THREE.JS 辉光设定THREE.JS 辉光导致背景变暗的问题1.设定背景图片2.初始化辉光3. animate 一直渲染辉光 THREE.JS 辉光设定 给我的设计好的fbx模型,已经设定好了模型发光材质,所以直接添加辉光效果,就可以自动发光 blender模型生…

经典策略梯度算法

经典策略梯度算法 DDPG算法 DDPG 算法被提出的初衷其实是 DQN 算法的一个连续动作空间版本扩展。深度确定性策略梯度算法&#xff08; deep deterministic policy gradient&#xff0c;DDPG&#xff09;&#xff0c;是一种确定性的策略梯度算法。 由于DQN算法中动作是通过贪…

pythonselenium自动化测试实战项目

说明&#xff1a;本项目采用流程控制思想&#xff0c;未引用unittest&pytest等单元测试框架 一.项目介绍 目的 测试某官方网站登录功能模块可以正常使用 用例 1.输入格式正确的用户名和正确的密码&#xff0c;验证是否登录成功&#xff1b; 2.输入格式正确的用户名和不…