20:Big Bang(链表的插入、删除、遍历和查找)

总时间限制:

20000ms

内存限制:

131072kB

描述

学习累了的时候看看一集二十分钟左右的《生活大爆炸》也不失为一种乐趣。在剧中Sheldon可以说是一个极品,真不知Leonard是如何忍受这位极品室友成天的唠叨。

你知道么?Sheldon有一个神秘的小本本,记录了所有他从小开始讨厌的人名。Stuart这位漫画店老板就是小本本的一员哦,谁叫他常常毫不客气地挤兑Sheldon,曾多次赌赢过Sheldon呢。

Penny是一个漂亮的女孩,好奇心也很强。为了满足她的好奇心,我当回编剧让她意外知道了Sheldon的那个小本本放在了哪里。于是她几乎每天都去看,看看上面有哪些人。但是那个小本本上的人名实在太多。要知道她可是没上过大学在饭店里面当服务员啊。请聪明的你帮帮她处理处理那个小本本吧。 

Sheldon每天都会在小本本里记录些人名,当然有时也会与他们和好就会从小本本中将这个人名删除。我们假设Sheldon会在一个空的小本本上插入、删除、查询某个人。

要帮助Penny,你需要知道一个链表是怎么初始化、插入、删除以及查找的。

输入

输入数据只有一组,有很多行。每行的格式可能是下列一种:
insert a name
delete name
show
search name
end
其中 a 是一个整数,代表在第a个名字前插入名字。name是一个姓名,只包含英文字母的大小写,每个名字不超过30个字符。end表示退出程序。
输入保证不会插入列表中已经存在的姓名,不会删除列表中不存在的姓名,不会搜索列表中不存在的姓名,也不会要求在非法的位置插入列表。

输出

起始时,列表是空的。只输出show和search name 的结果。show将列表中的姓名全部输出,search只输出找到该名字的序号(从1开始)。每次输出占一行,姓名间用空格隔开。如果列表中没有名字了,show时也要输出一个空行。

样例输入

insert 1 Stuart
insert 2 Bernadette
show
search Stuart
delete Stuart
show
insert 2 Stuart
show
insert 1 Amy
insert 2 Leslie
insert 3 Stephanie
show
delete Leslie
show
search Stuart
end

样例输出

Stuart Bernadette
1
Bernadette
Bernadette Stuart
Amy Leslie Stephanie Bernadette Stuart
Amy Stephanie Bernadette Stuart
4

提示

1、名字是不含空格的,指令也是有限的。
2、题目要求每个输出占一行,所以要注意换行。

实现代码如下:


import java.util.ArrayList;
import java.util.Scanner;/*** @author baikunlong* @date 2020/6/22 18:45*/
public class Main20 {public static void main(String[] args) {ArrayList<String> names = new ArrayList<>();Scanner scanner = new Scanner(System.in);while (scanner.hasNext()) {String s = scanner.nextLine();if (s.equals("end")) {break;} else if (s.equals("show")) {int size = names.size();for (int i = 0; i < size - 1; i++) {System.out.print(names.get(i) + " ");}System.out.println(names.get(size-1));} else {String[] strings = s.split(" ");if (strings[0].equals("delete")) {names.remove(strings[1]);} else if (strings[0].equals("insert")) {names.add(Integer.valueOf(strings[1]) - 1, strings[2]);} else {System.out.println((names.indexOf(strings[1]) + 1) + "");}}}}
}

java数据结构20:Big Bang(链表的插入、删除、遍历和查找)相关推荐

  1. java数据结构 第4章-链表(双向链表)

    文章目录 4.4 双向链表应用实例 4.4.1双向链表的操作分析和实现 1.管理单向链表的缺点分析: 2.分析 双向链表的遍历,添加,修改,删除的操作思路 3.双向链表的代码实现 4.代码运行结果 4 ...

  2. 顺序表和单链表的插入删除操作时间复杂度的区别

    顺序表和单链表的插入删除操作时间复杂度的区别 最近在学习数据结构,看到如果需要用到大量的插入和删除操作,单链表的效率会高于顺序表.看到这里时内有有个疑惑,这两种数据结构的插入和删除操作的时间复杂度不都 ...

  3. 单链表的插入和遍历 包括头插入和尾插入

    // Win32Project1.cpp : 定义控制台应用程序的入口点. // //单链表的插入和遍历 #include "stdafx.h" #include <AccC ...

  4. Java数据结构和算法(四)--链表

    日常开发中,数组和集合使用的很多,而数组的无序插入和删除效率都是偏低的,这点在学习ArrayList源码的时候就知道了,因为需要把要 插入索引后面的所以元素全部后移一位. 而本文会详细讲解链表,可以解 ...

  5. Java数据结构与算法 day02 链表

    文章目录 第三章 链表 单链表介绍和内存布局 单链表创建和遍历的分析实现 添加(创建)过程 遍历过程 代码实现 单链表按顺序插入节点 单链表节点的修改 单链表节点的删除和小结 单链表面试题 新浪面试题 ...

  6. C语言数据结构 单链表的建立、遍历、查找、插入和删除操作

    参考文献 本博文为半摘记性质 -- 声明:全文主干部分摘自 [1] 杨智明. 数据结构(C语言版)[M]. 第一版. 北京:北京理工大学出版社, 2016. [2] 严蔚敏, 李冬梅, 吴伟民. 数据 ...

  7. 用c语言实现单链表的初始化,建表,查找,求长度,插入,删除等操作,【YTU+2430+C语言习题+链表建立+插入+删除+输(5)...

    的打印.判断链表是否为空.计算链表长度.插入节点.删除节点.删除整个链表.(2) 线性表adt顺序存储实现中的创建.查找.插入和删除等基本操作及相关算法,线性表adt链式存储实现中单链表.循环链表和双 ...

  8. 链表(创建,插入,删除和打印输出

    http://www.bianceng.cn/Programming/C/200705/327.htm  (以下不全,去此网址看) 数组作为存放同类数据的集合,给我们在程序设计时带来很多的方便,增加了 ...

  9. 数据结构:在一个单链表中,若删除p指向节点的后继节点,则执行的操作为:( )

    在一个单链表中,若删除p指向节点的后继节点,则执行的操作为:( ) A.q=p->next; p->next=p->next->next; free(q) B.p=p-> ...

最新文章

  1. 批量计算多个点到一个点的距离
  2. Unbuntu 下安装node 环境
  3. SpringMVC-获得Restful风格的参数
  4. 基础IO(文件接口、安装内核源码超详细步骤图解、静态库与动态库)
  5. 为什么代码规范要求SQL语句不要过多的join?
  6. Vue-cli 自定义配置
  7. shell之旅--将目录下的文件重命名为md5码+后缀名
  8. PHP连接MongoDB
  9. 深度解读 | 102万行代码,1270个问题,Flink 1.10 发布了什么?
  10. fabric.js 不同类型 不同控件_如何模拟不同类型的阻尼
  11. B站还有多久成为天涯
  12. Kaggle 机器学习实战 朴素贝叶斯(原理+西瓜数据集实战)
  13. unity球体添加光源_Unity 3D光源-Point Light点光源详解/灯泡、模拟灯光效果教程
  14. 房屋托管平台“朴邻”签约法大大,电子合同提升客户签约体验
  15. vue 解决跨域时报错 Cannot read property ‘split‘ of null
  16. 学习笔记 #pragma GCC diagnostic push 与 #pragma GCC diagnostic pop 的使用
  17. Image Super-Resolution via Iterative Refinement 论文解读和感想
  18. 饥荒联机版服务器搭建过程--采取官网文档的方法
  19. 51 单片机实战教程(13 外围芯片驱动程序之CS1237芯片驱动)
  20. Oracle免登录下载JDK(实测有效)

热门文章

  1. 关于竞赛,CSDN还有很长的路要走
  2. python基础学习_01变量
  3. Android音量调节(一)音量键的处理流程
  4. 文章标题 Chris and Magic Square
  5. 常用于应届生面试的24道面试题
  6. 数字信号处理总结之共轭对称性_复变函数积分的共轭=共轭的积分
  7. 优雅的交流的注意点-能量的发源地-潜意识
  8. huffman编码压缩c语言,用Huffman编码对文件进行压缩的C语言实现
  9. python百度地图poi_百度地图数据采集手把手教,从此POI数据不再是愁
  10. 超神学院的宇宙天体计算机,正文 第一章:银河之力被一分为二